zoukankan      html  css  js  c++  java
  • 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

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

  • 相关阅读:
    Go语言实现:【剑指offer】复杂链表的复制
    Go语言实现:【剑指offer】字符串的排列
    Go语言实现:【剑指offer】机器人的运动范围
    Delphi10.3的DBGrid美化(03)
    uniGUI学习之uniButton设置图标+扁平化CSS(34)
    UniGUI学习之hBox布局(33)
    Bug集锦
    ImageNamed、imageWithContentsOfFile、SupportingFiles、Images.xcassess
    MVC设计模式
    [转]iOS开发之视图控制器(UIViewController)
  • 原文地址:https://www.cnblogs.com/spaceship9/p/2981794.html
Copyright © 2011-2022 走看看