实例属性、类属性
实例属性是对象独有的,每个对象与每个对象之间各不相同
实例属性的声明在__init__()初始化方法中,使用self关键字将属性绑定到当前对象上
类属性,不是写在__init__()方法中,而是在类中定义
例:
用实例化的对象修改不了类属性,只是在该对象的属性中添加了一个实例属性,类属性没有变化
总结:
类属性:
声明位置:在类的内部,方法的外部
访问数据:当前类的名称,当前类创建的所有对象
修改数据:通过当前类名去修改
实例属性:
声明位置:声明在__init__(self)中
访问数据:只能被当前对象访问
修改数据:只能被当前对象修改
实例方法、类方法、静态方法
实例方法
实例方法是指对象的行为方法
实例方法声明在类型内部的普通方法,实例方法在执行过程中可以访问当前对象的所有属性和方法,实例方法在使用过程中只能被对象的变量调用执行
例:
类方法
类方法是声明在类内部,方法上使用@classmethod声明的方法,第一个参数是当前类本身,约定俗成使用cls表示,类方法只能访问当前类的类属性,不能访问任何对象的实例属性,类方法能被当前类调用,也能被实例化对象调用
例:
静态方法
静态方法相当于将函数写到了类中
声明格式:@staticmethod
静态方法本质上是被统一管理在类中的函数,声明在类的内部,方法上使用装饰器@staticmethod声明的方法,静态方法是独立的方法,不能访问类中的任何信息,静态方法可以被类名直接调用,也可以被对象的变量调用执行
例:
魔术方法
构造和初始化
__new__(cls)
创建对象的魔术方法
__init__(self)
初始化对象数据的方法
__del__(self)
析构方法
__call__(self)
当对象被当做函数调用时,执行这个方法里的代码
对象打印
__str__(self)
返回的必须是字符串,用来打印展示对象信息
__repr__(self)
当对象被放在列表中的时候,我们打印列表时,显示的信息,输出展示对象的信息
魔法属性
__dict__
将对象中的属性以字典的形式返回
__doc__
查看类或者对象的说明信息
例:
输出结果: