2018lzn

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)   只能在 类内部 中被引用,   在外部或子类中,都不能使用

类的私有方法

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

对象的私有变量

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

 

posted on 2018-08-29 18:03  2018lzn  阅读(156)  评论(0编辑  收藏  举报

导航