- 封装 enclosure
私有属性和方法
python类中,以双下划线(””)开头,不以双下划线结尾的标识符为私有成员,私有成员只能使用该类的方法来进行访问和修改
1.以
开头的属性为私有属性
2.以__开头的方法为私有方法
示例:
- 多态 polymocphic
状态:
静态(编译时状态)
动态(运行时状态)
说明:
多态调用的方法和对象相关,不写类型相关
python全部对象只有’运行时状态(动态)‘,
没有’c++语言’里的编译时状态(静态)
示例:
面向对象编程语言的特征:
继承
封装
多态
- 函数重写 overwrite
什么是函数重写
在自定义的类内添加相应的方法,让自定义的类创建的实例能够使用内建函数进行操作
对象转字符串函数
repr(x) 返回一个能表示python对象的表达式字符串,通常
evel(rerp(obj)) == obj
str(x) 通过给定的对象返回一个字符串(这个字符串通常供人阅读)
示例:
对象转字符串函数的重写方法:
repr()函数的重写方法:
def repr(self):
return 字符串
str()函数的重写方法:
def str(self):
return 字符串
str(obj)函数调用方法说明:
1.str(obj)函数先查找obj.str方法,调用此方法并返回结果
2.如果obj.str()方法不存在,则调用obj.repr方法
并返回结果
3.如果obj.repr方法不存在,则调用object类的repe
实例方法显示<main.XXXX object at 0xXXXXXXX>格式的
字符串
示例:
内建函数重写
方法名 函数名
def abs(self): abs(obj) 函数调用
def len(self): len(obj) 函数调用
def reversed(self): reversed(obj) 函数调用
def round(self): round(obj) 函数调用
示例:
数值转换函数的重写:
def complex(self): complex(obj)函数调用
def init(self): init(obj) 函数调用
def float(self): float(obj) 函数调用
def bool(self): bool(obj) 函数调用
示例见:
布尔测试函数的重写
- 迭代器(高级)
什么是迭代器
由iter(x)函数返回,可以通过next(it)函数取值的对象就是迭代器
迭代器协议:
迭代器协议是指对象能够使用next()函数获取下一项数据,在没有下一项数据时,触发一个StopIteration
异常来终止迭代的约定
什么是可迭代对象
是指能用iter(obj)函数返回迭代器的对象(实例)
可迭代对象内部都要定义iter(self)方法来返回迭代器对象

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/204636.html