python中新建一个类的时候为什么要用init()方法呢?在CSDN上看到了一篇说明(参考中),通过两个代码的比较,对init()方法的作用有了一些了解。
1.第一个代码类的定义不使用init()初始化方法,打印一个矩形的长度、面积和这个类中的私有属性。
1 class Rectangle(): 2 def getPeri(self,a,b): 3 return (a + b)*2 4 def getArea(self,a,b): 5 return a*b 6 7 rect = Rectangle() 8 print(rect.getPeri(3,4)) 9 print(rect.getArea(3,4)) 10 print(rect.__dict__)
下面是输出:
14
12
{}
2.第二个代码,类的定义中有init()方法。
1 class Rectangle(): 2 def __init__(self,a,b): 3 self.a = a 4 self.b = b 5 def getPeri(self): 6 return (self.a + self.b)*2 7 def getArea(self): 8 return self.a * self.b 9 10 rect = Rectangle(3,4) 11 print(rect.getPeri()) 12 print(rect.getArea()) 13 print(rect.__dict__)
下面是输出:
14 12 {‘a‘: 3, ‘b‘: 4}
经过对比可以看出,在没有使用init()方法创建类的时候,使用该类创建的实例的属性是空的。而使用init()方法创建类的时候,该类创建的实例属性都有了。
使用init()方法创建类的时候,有几个好处:
1.使用该类创建实例,可以自带有init()方法中的属性,而属性的值在创建实例时就可以设置。
2.与1对应的,该实例引用类中的函数时,可以不用再设置参数的值了。
参考:
https://blog.csdn.net/geerniya/article/details/77487941
原文:https://www.cnblogs.com/AIgan/p/11642747.html