构造函数_init_()
Python中初始化对象的方法
Python中的对象包括以下几个部分
- id(identity识别码)
- type(对象类型)
- value(对象的值)
(1)属性
(2)方法
构造方法_init_()用于执行“实例对象的初始化工作”,及对象创建后,初始化当前对象的相关属性,无返回值。
要点如下:
- 名称固定,必须为:init()
- 第一个参数固定,必须为:self。self指的是刚刚创建好的实例对象。
- 构造函数通常用户来初始化对象的实例属性。
- init()方法:初始化创建好的对象,初始化指的是:“给实例属性赋值”
- new()方法:用于创建对象,但是我们一般无需重新定义该方法
实例对象与实例方法
实例方法是从属于实例对象的方法。
实例方法:
def 方法名(self , 参数1,参数2,,,,)
定义实例方法时,第一个参数必须为self
调用实例方法是不需要也不能给self传值
类对象与实例对象
类对象从属于类,实例对象从属于实例
类对象定义在类的头部。
实例对象定义在构造器方法中
def _init_ (self,name,score):
self.name = name
self.score = score
外部调用时,调用的时使用对象+参数调用
在调用类变量时,通过类+参数调用
类方法与静态方法
类方法是从属于“类对象”的方法。类方法通过装饰器@classmethod来定义
@classmethod
def 方法名 (cls,参数列表)
调用时通过类+类方法进行调用
- @classmethod必须位于方法上面一行
- 第一个cls必须有;
- 类方法中访问实例属性与实例方法会导致错误
- 子类集成父类方法时,传入cls是子类对象,而非父类对象。
静态方法与类方法很像。静态方法与类对象无关,静态方法需要装饰器@staticmethod来定义。静态方法与普通方法没有太大的区别。有一点很重要,类方法与静态方法只能调用类变量。
_del_方法
del为析构方法,实现对象销毁时进行的操作。Python中实现自动的垃圾回收。
_call_方法
默认对象的调用方法
Python中没有重载
Python中没有重载方法,如果定义了几个同名的方法,没有重载,只有最后的一个方法才生效。
私有属性与私有方法(实现封装)
Python对类成员没有严格的控制限制。对于私有有以下几点:
- 一般约定,有两个下划线开头的属性是私有的
- 类内可以访问私有属性
- 类外部不能直接访问私有属性
- 类外部可以通过“_类名__私有属性(方法名)”
class Employee:
def _init_(self,name)
self.__name = name
print(e._Employee__name) #访问私有属性
私有方法前面加双下划线,表示私有方法。
@property装饰器
@property装饰器讲一个方法的调用方式变成属性调用。