python面向对象开发(类的属性精讲

视频地址:http://v.youku.com/v_show/id_XNDg3NjU1MjE2.html

 1 #!/usr/bin/python
 2 #coding:utf8
 3 var4 = "全局变量"
 4 class Milo(): 
 5     var1 = "类属性,公有属性var1"
 6     __var2 = "类的私有属性 __var2"
 7 
 8     def fun(self):
 9         self.var2 = "对象的公有属性var2"
10         self.__var3 = "对象的私有属性__var3"
11         var4 = "函数 fun 的局部变量var4"
12         print var4
13         print self.__var3
14 
15     def other(self):
16         print var4
17         print self.__var3    # 这表示在运行类方法fun()之后,实例有了个
18                 # self.__var3的变量。所以比较好
19 
20 zou = Milo()
21 zou.fun()
22 # print zou.var4        # 如果不执行类方法fun()的话,那么将没有zou.var4 这一行都是没有用的,局部变量无法在对象中引用!!
23 
24 zou.other()    # 单独运行输出self.__var3也不行,应该先运行类方法fun()之后

显示结果:

alex@universe ~/python/OOP $ python cls_LeiShuXing.py 
函数 fun 的局部变量var4
对象的私有属性__var3
全局变量
对象的私有属性__var3

上面注释写的就很好,可以会议一下。

就是运行函数的时候,可以自己加载一些属性。上面的函数,是在运行对象zou的zou.fun()之后,才有了zou.var4

如果,我们把上面类的方法fun(),变成方法def __init__(self): 的话,那么所有对象在创建的时候,都要自动去创建方法要求里面的内容,针对这个代码来说,将会创建 类  的

私有属性 self.__var3,

类的共有属性 self.var2 ,

函数的局部变量var4 (var4 只有当 fun()运行后才有效果)

(这些私有属性,公有属性,函数的局部变量  都 只归 所创建的这个对象所有 )

整体说一句总结:

类的属性就是说,在类中,会有各种方法,当创建对象的时候,如果对象启动了类中的某一个方法,那么这个对象就可能会产生类的属性。

不同对象触及不同方法,会导致不同对象的类的属性不同(或者处理结果方式不同,内部可能有函数)。

这就保证了一个类可以创建差异性比较大的各种 对象了。  保证了对象的多样性!!!

 1 class Trouble():
 2 
 3      var1 = "peace"
 4 
 5      def fun(self):
 6 
 7              self.var2 = "Bill Gates"
 8 
 9     def kick(self):
10 
11             self.__var3 = "Steve Jobs"
12 
13 obj1 = Trouble()
14 
15 obj2 = Trouble()
16 
17 obj1.fun()
18 
19 obj2.kick()

这样,对象obj1 就有了公有属性 var1 , var2

obj2 有公有属性 var1, 私有属性__var3

执行了类中的方法,让他们有了属性

原文地址:https://www.cnblogs.com/spaceship9/p/2981794.html