| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
各位大佬! 
小甲鱼37讲课后作业,乌龟吃鱼。 
为什么定义属性时用了一个__init__函数? 
如果我直接定义属性,也能做出来,他们2者有什么区别吗?
类属性不但是是实例方法可以访问。其他实例都会共享这个属性。而实例属性只有这个实例才可以访问。实例于实例之间的实例属性是隔离的。 
上个例子,你和楼主看看能不能看懂:
 - class Line:
 
 -     number = 0  # 类属性
 
 -     def __init__(self, length):
 
 -         self.length = length  # 实例属性
 
 -         Line.number += 1
 
 -     
 
 -     def getting_long(self, new_length):
 
 -         self.length = new_length
 
 -         print(self.length)
 
 -         
 
 - line1 = Line(10)
 
 - line2 = Line(20)
 
 - print(Line.number)
 
 - print(line1.number)
 
 - print(line2.number)
 
 - Line.number = 3  # 改变类属性
 
 - print(line1.number)
 
 - print(line2.number)
 
  
- print(line1.length)
 
 - print(line2.length)
 
 - line1.getting_long(15)  # 改变其中一个实例的实例属性
 
 - print(line1.length)
 
 - print(line2.length)
 
  复制代码 
 
 
 |   
 
 
 
 |