zoukankan      html  css  js  c++  java
  • python第十八天 多态 和 私有

    python的多态比较特别

    多态, 字面意思,多种状态. 扩展下 -> 执行同样的操作,结果却不同.

    对使用的操作者来说, 就是执行同一个方法, 得到了不同的结果. 在操作者看来,像是   具备 多种状态的特性.

     1 class A:
     2     def run(self):
     3         print('run a a a')
     4 
     5 
     6 class B:
     7     def run(self):
     8         print('fly b b b')
     9 
    10 
    11 def execute(obj):
    12     obj.run()
    13 
    14 
    15 execute(A())   run a a a
    16 execute(B())   fly b b b

      从如上代码可以知道, A类 和 B 类 唯一的共同点,就是都默认继承 object类.

     A 类中定义的 方法 run, B 类中 也 定义了 方法 run

      这两个方法分别定义的, 完全可以执行不同的逻辑操作代码.

    函数 execute中, 局部变量 obj调用了 run方法, 如果实参obj 本身没有 run方法, 程序就会报错

     所以,这就要求python开发者, 遵守python规范

    类的私有变量

    1 class A:
    2     __name = 'A'    在名称前, 加两个下划线, 类的静态变量,就变成了 类的私有变量
    3 
    4     def test(self):
    5         print(self.__name)   只能在 类内部 中被引用,   在外部或子类中,都不能使用

    类的私有方法

     同样是在名称前 加两个下划线

    对象的私有变量

    同样是在名称前 加两个下划线

  • 相关阅读:
    L84
    L83
    T57
    T56
    Listen 82
    Listen81
    PyQt(Python+Qt)学习随笔:QListView的isWrapping属性
    PyQt(Python+Qt)学习随笔:QListView的movement属性
    PyQt(Python+Qt)学习随笔:QListView的gridSize属性
    第15.20节 PyQt(Python+Qt)入门学习:QColumnView的作用及开发中对应Model的使用
  • 原文地址:https://www.cnblogs.com/golzn2018/p/9556047.html
Copyright © 2011-2022 走看看