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 相关文章推荐
使用PyV8在Python爬虫中执行js代码
Feb 16 Python
python技能之数据导出excel的实例代码
Aug 11 Python
Python中的探索性数据分析(功能式)
Dec 22 Python
python实现图书馆研习室自动预约功能
Apr 27 Python
对pandas中Series的map函数详解
Jul 25 Python
Python装饰器原理与基本用法分析
Jan 07 Python
keras 读取多标签图像数据方式
Jun 12 Python
Python map及filter函数使用方法解析
Aug 06 Python
python 基于opencv实现图像增强
Dec 23 Python
聊聊Python pandas 中loc函数的使用,及跟iloc的区别说明
Mar 03 Python
Python .py生成.pyd文件并打包.exe 的注意事项说明
Mar 04 Python
Python3 多线程(连接池)操作MySQL插入数据
Jun 09 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
Discuz 模板引擎的封装类代码
2008/07/18 PHP
浅析echo(),print(),print_r(),return之间的区别
2013/11/27 PHP
php socket客户端及服务器端应用实例
2014/07/04 PHP
PHP使用strtotime计算两个给定日期之间天数的方法
2015/03/18 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
PHP实现合并两个排序链表的方法
2018/01/19 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
2020/05/02 PHP
asp.net+jquery滚动滚动条加载数据的下拉控件
2010/06/25 Javascript
学习面向对象之面向对象的基本概念:对象和其他基本要素
2010/11/30 Javascript
js中settimeout方法加参数
2014/02/28 Javascript
node.js中的http.createServer方法使用说明
2014/12/14 Javascript
js实现人才网站职位选择功能的方法
2015/08/14 Javascript
JavaScript事件学习小结(三)js事件对象
2016/06/09 Javascript
jQuery组件easyui对话框实现代码
2016/08/25 Javascript
JavaScript 判断一个对象{}是否为空对象的简单方法
2016/10/09 Javascript
JavaScript闭包和范围实例详解
2016/12/19 Javascript
JavaScript解析任意形式的json树型结构展示
2017/07/23 Javascript
Bootstrap Table 在指定列中添加下拉框控件并获取所选值
2017/07/31 Javascript
微信小程序实现漂亮的弹窗效果
2020/05/26 Javascript
JQuery事件委托原理与用法实例分析
2019/05/13 jQuery
vue读取本地的excel文件并显示在网页上方法示例
2019/05/29 Javascript
在Vue环境下利用worker运行interval计时器的步骤
2019/08/01 Javascript
vue 防止页面加载时看到花括号的解决操作
2020/11/09 Javascript
Linux系统上Nginx+Python的web.py与Django框架环境
2015/12/25 Python
python版本的读写锁操作方法
2016/04/25 Python
利用Python找出序列中出现最多的元素示例代码
2017/12/08 Python
利用python对Excel中的特定数据提取并写入新表的方法
2018/06/14 Python
python模拟点击玩游戏的实例讲解
2020/11/26 Python
CSS3字体效果的设置方法小结
2016/06/13 HTML / CSS
使用HTML5和CSS3表单验证功能
2017/05/05 HTML / CSS
仿CSDN Blog返回页面顶部功能实现原理及代码
2013/06/30 HTML / CSS
阿里健康官方海外旗舰店:阿里健康国际自营
2017/11/24 全球购物
世界上最大的艺术和工艺用品商店:MisterArt.com
2018/07/13 全球购物
String这个类型的class为何定义成final?
2012/11/13 面试题
父亲追悼会答谢词
2014/01/17 职场文书
酒店餐厅2014重阳节活动策划方案
2014/09/16 职场文书