python中类的属性和方法介绍


Posted in Python onNovember 27, 2018

Python-类属性,实例属性,类方法,静态方法,实例方法

类属性和实例属性

#coding:utf-8
class Student(object):
  name = 'I am a class variable' #类变量
>>> s = Student() # 创建实例s
>>> print(s.name) # 打印name属性,因为实例并没有name属性,所以会继续查找class的name属性
Student
>>> print(Student.name) # 打印类的name属性
Student
>>> s.name = 'Michael' # 给实例绑定name属性
>>> print(s.name) # 由于实例属性优先级比类属性高,因此,它会屏蔽掉类的name属性
Michael
>>> print(Student.name) # 但是类属性并未消失,用Student.name仍然可以访问
Student
>>> del s.name # 如果删除实例的name属性
>>> print(s.name) # 再次调用s.name,由于实例的name属性没有找到,类的name属性就显示出来了
Student

类方法,实例方法,静态方法

实例方法,第一个参数必须要默认传实例对象,一般习惯用self。

静态方法,参数没有要求。

类方法,第一个参数必须要默认传类,一般习惯用cls。

# coding:utf-8
class Foo(object):
  """类三种方法语法形式"""
 
  def instance_method(self):
    print("是类{}的实例方法,只能被实例对象调用".format(Foo))
 
  @staticmethod
  def static_method():
    print("是静态方法")
 
  @classmethod
  def class_method(cls):
    print("是类方法")
 
foo = Foo()
foo.instance_method()
foo.static_method()
foo.class_method()
print('----------------')
Foo.static_method()
Foo.class_method()

运行结果:

是类<class '__main__.Foo'>的实例方法,只能被实例对象调用
是静态方法
是类方法
----------------
是静态方法
是类方法

类方法

由于python类中只能有一个初始化方法,不能按照不同的情况初始化类,类方法主要用于类用在定义多个构造函数的情况。
特别说明,静态方法也可以实现上面功能,当静态方法每次都要写上类的名字,不方便。

# coding:utf-8
class Book(object):
 
  def __init__(self, title):
    self.title = title
 
  @classmethod
  def class_method_create(cls, title):
    book = cls(title=title)
    return book
 
  @staticmethod
  def static_method_create(title):
    book= Book(title)
    return book
 
book1 = Book("use instance_method_create book instance")
book2 = Book.class_method_create("use class_method_create book instance")
book3 = Book.static_method_create("use static_method_create book instance")
print(book1.title)
print(book2.title)
print(book3.title)
Python 相关文章推荐
Python实现一个简单的MySQL类
Jan 07 Python
编写Python脚本来获取mp3文件tag信息的教程
May 04 Python
Python 26进制计算实现方法
May 28 Python
Python中super的用法实例
May 28 Python
Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录
Sep 20 Python
python去除字符串中的换行符
Oct 11 Python
python 搭建简单的http server,可直接post文件的实例
Jan 03 Python
python selenium执行所有测试用例并生成报告的方法
Feb 13 Python
python使用socket实现的传输demo示例【基于TCP协议】
Sep 24 Python
Python实现屏幕录制功能的代码
Mar 02 Python
Django DRF路由与扩展功能的实现
Jun 03 Python
Python从MySQL数据库中面抽取试题,生成试卷
Jan 14 Python
Python2和Python3中urllib库中urlencode的使用注意事项
Nov 26 #Python
程序员写Python时的5个坏习惯,你有几条?
Nov 26 #Python
Django2.1.3 中间件使用详解
Nov 26 #Python
django+echart绘制曲线图的方法示例
Nov 26 #Python
详解配置Django的Celery异步之路踩坑
Nov 25 #Python
利用Python如何实现一个小说网站雏形
Nov 23 #Python
Python + selenium + requests实现12306全自动抢票及验证码破解加自动点击功能
Nov 23 #Python
You might like
hessian 在PHP中的使用介绍
2010/12/13 PHP
php基于ob_start(ob_gzhandler)实现网页压缩功能的方法
2017/02/18 PHP
JS类库Bindows1.3中的内存释放方式分析
2007/03/08 Javascript
jquery中的mouseleave和mouseout的区别 模仿下拉框效果
2012/02/07 Javascript
js实现点小图看大图效果的思路及示例代码
2013/10/28 Javascript
node.js中的fs.fstatSync方法使用说明
2014/12/15 Javascript
javascript实现点击按钮让DIV层弹性移动的方法
2015/02/24 Javascript
javascript+HTML5自定义元素播放焦点图动画
2016/02/21 Javascript
JS代码防止SQL注入的方法(超简单)
2016/04/12 Javascript
Javascript实现鼠标框选操作  不是点击选取
2016/04/14 Javascript
基于jQuery实现表格内容的筛选功能
2016/08/21 Javascript
AngularJS实现根据变量改变动态加载模板的方法
2016/11/04 Javascript
vue 中自定义指令改变data中的值
2017/06/02 Javascript
jQuery修改DOM结构_动力节点Java学院整理
2017/07/05 jQuery
javascript中UMD规范的代码推演
2018/08/29 Javascript
Vue 中如何正确引入第三方模块的方法步骤
2019/05/05 Javascript
关于layui时间回显问题的解决方法
2019/09/24 Javascript
[49:59]KG vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python 设置文件编码格式的实现方法
2017/12/21 Python
Python列表推导式与生成器表达式用法示例
2018/02/08 Python
解决python 无法加载downsample模型的问题
2018/10/25 Python
python IDLE 背景以及字体大小的修改方法
2019/07/12 Python
Python操作excel的方法总结(xlrd、xlwt、openpyxl)
2019/09/02 Python
python 发送get请求接口详解
2020/11/17 Python
手对手的教你用canvas画一个简单的海报的方法示例
2018/12/10 HTML / CSS
Canvas globalCompositeOperation
2018/12/18 HTML / CSS
HTML5 body设置全屏背景图片的示例代码
2020/12/08 HTML / CSS
美国网上书店:Barnes & Noble
2018/08/15 全球购物
香港最新科技与优质家居产品购物网站:J SELECT
2018/08/21 全球购物
美国精品地毯网站:Boutique Rugs
2020/03/04 全球购物
给排水专业应届生求职信
2013/10/12 职场文书
前台接待员岗位职责
2014/01/02 职场文书
跳槽求职信范文
2014/05/26 职场文书
庆祝教师节活动总结
2015/03/23 职场文书
治庸问责工作总结
2015/08/11 职场文书
2016年基层党组织创先争优承诺书
2016/03/25 职场文书