init()
是Python中的构造函数,构造函数用于初始化类的内部状态,为类的属性设置默认值。
- 两个下划线开头的函数是声明该属性为私有,不能在类的外部被使用或访问。
- _init__函数(方法)支持带参数类的初始化,也可为声明该类的属性(类中的变量)。__init__函数(方法)的第一个参数必须为self,后续参数为自己定义。
call函数
call()的本质是将一个类变成一个函数(使这个类的实例可以像函数一样调用)
class A(object):
def __init__(self, name, age):
self.name = name
self.age = age
def __call__(self):
print('my name is %s' % self.name)
print('my age is %s' % self.age)
if __name__ == '__main__':
a = A('jack', 26)
a()
结果输出:
my name is jack
my age is 26
解释:传入两个参数 变成了实例a 实例a直接调用就是call方法 打印出姓名年龄 ,如此 call方法使得a这个类变成了一个函数 可以调用 也可以增加参数。
self参数
- self只有在类的方法中才会有,其他函数或方法是不必带self的
- 在类的方法中(如__init__),第一参数永远是self,表示创建的类实例本身,而不是类本身。
- python中的self等价于C++中的self指针和Java、C#中的this参数。
- 如果不加self,表示是类的一个属性(可以通过"类名.变量名"的方式引用),加了self表示是类的实例的一个属性(可以通过"实例名.变量名"的方式引用)。