最开始学习python,认为定义类时__init__方法的作用等同于C中的构造函数,但是使用之后发现也有区别。
# coding:utf-8
class a():
def __init__(self,name):
self.name = name
def get_name(self):
return self.name
b = a("wang")
print(b.get_name())
Output:
-----
wang
-----
例如:
执行时的步骤可以理解为;
b = object.__new__(a)
a.__init__(a,"wang")
即__init__的作用是初始化实例后的对象b
在子类不重写__init__方法时,子类会默认调用父类中的__init__方法
子类也可以重写__init__方法,来给子类定义专属属性
当然,上面写的是比较官方的解释
用简单的话来讲,可以理解为,类的属性如果直接写在类里面一般是要有值的。
例如:
class fun()
a = 3
这样的情况下,类中的属性无法变成变量,当将类的属性以self.a的方式定义到初始化方法中,那属性也可以当成变量
例如:
class fun():
def __init__(self, a):
self.a = a
f = fun(3)
print(f.a)
Output:
--
3
--
承接Matlab、Python和C++的编程,机器学习、计算机视觉的理论实现及辅导,本科和硕士的均可,咸鱼交易,专业回答请走知乎,详谈请联系QQ号757160542,非诚勿扰。
本文同步分享在 博客“于小勇”(CSDN)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
版权声明:本文为weixin_40007668原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。