一、多态 :python 天生支持多态
多态指的是一类事物有多种形态 eg:文件有多种形态:文本文件,可执行文件
鸭子类型:python中崇尚鸭子类型,不崇尚根据继承所得来的相似
优点 : 松耦合 每个相似的类之间都没有影响
缺点 : 太随意了,只能靠自觉
#eg序列类型有多种形态:字符串,列表,元组,但他们直接没有直接的继承关系
#eg:如果两个类刚好相似,并不产生父类的子类的兄弟关系,而是鸭子类型
#eg:list tuple 这种相似,是自己写代码的时候约束的,而不是通过父类约束的

举例

class Tuple:
def __len__(self):
return 'aaa'
class List:
def __len__(self):
return 'qqq'
def len(a):
return a.__len__()
l=list()
len(l)
二、封装: 隐藏对象的属性和实现细节,仅对外提供公共访问方式。
# 【好处】
"""
1. 将变化隔离;
2. 便于使用;
3. 提高复用性;
4. 提高安全性;
"""
# 【封装原则】
"""
1. 将不需要对外提供的内容都隐藏起来;
2. 把属性都隐藏,提供公共方法对其访问。
"""
class Person:
__key=123 # 私有 静态属性
def __init__(self,name,passwd):
self.name=name
self.__passwd=passwd # 私用 动态属性
def __get_passwd(self): #私有方法
return self.__passwd
def login(self):
self.__get_passwd() #支持每部调用查看
#私有方法不能再外部调用,但是我们也是可以加上类名就能调用了,但是不建议使用
join=Person('join',123)
print(join._Person__passwd) #

三、小结

# 所有的私有 都是在变量的左边加上双下划綫
# 对象的私有属性
# 类中的私有方法
# 类中的静态私有属性
# 所有的私有的 都不能在类的外部使用

最新文章

  1. Linux编程环境
  2. Codeforces Round #234A
  3. ORACLE误删除ASM磁盘修复
  4. tomcat的下载安装和配置以及和eclipse的配置
  5. MyBatis学习总结(七)——Mybatis缓存
  6. xml技术DTD约束定义
  7. Cookie及App登陆的原理
  8. text-overflow:ellipsis的巧妙运用
  9. 插头DP题目泛做(为了对应WYD的课件)
  10. 扩展SpringMVC以支持绑定JSON格式的请求参数
  11. vim 替换
  12. android开发之多线程实现方法概述
  13. Linux下的常见压缩解压缩命令
  14. 如何优雅的解决mac安装zsh不执行.bash_profile
  15. 学习笔记: 反射应用、原理,完成扩展,emit动态代码
  16. orm查询语法参考文章
  17. 多线程串口编程工具CserialPort类(附VC基于MFC单文档协议通讯源程序及详细编程步骤)
  18. java线程大全一讲通
  19. 解决CentOS7-python-pip安装失败
  20. flume-elasticsearch-sink indexName

热门文章

  1. overflow:hidden失效
  2. python 根据字典的键值进行排序
  3. WPF非UI线程访问网络资源造成页面假死现象
  4. 发现最新版百度Android 定位SDK v6.1.3 网络定位bug
  5. 升级ssh后续问题
  6. 牛客多校第六场-H-Pair
  7. tcp/ip的通俗讲述(转)
  8. 安卓8.0真机运行appium1.4遇到的问题:运行自动化脚本,手机自动安装 settings.apk和unclock.apk,执行脚本时提示安装UnicodeIME-debug.apk失败,怎么关掉自动安装?
  9. c# 转16进制
  10. Nginx配置PHP环境支持