面向对象
2018-10-05 21:55:27 0 举报
AI智能生成
Python基础之面向对象
作者其他创作
大纲/内容
三大特点
封装
将相关功能封装到类中
将数据封装到对象中
继承
单继承
多继承
从左边开始继承
多态
成员
变量
实例变量(字段)
对象访问
类变量(静态字段)
类访问/(对象访问)
方法
实例方法
对象.函数名(至少有一个self参数)调用
静态方法
类.函数名(参数可有可无,自己传参数)调用
类方法
类.函数名(至少有一个cls参数)调用
特殊方法
__init__
初始化方法
通过 类 创建对象时,自动触发
__call__
对象()
item系列
__getitem__
对象["haha"]调用
获取haha
__setitem__
对象["haha"]="xixi"
获取 haha xixi
__delitem__
del 对象[1]
获取 1
__add__
对象 + 对象
with 对象
__enter__
自动执行开头
__exit__
自动执行结尾
构造方法
__new__
构造方法
__init__
初始化方法
__str__
在类中定义,在打印时返回该方法的返回值
__doc__
print(对象.__doc__)打印注释
__dict__
print(对象.__dict__)打印参数以字典形式
__iter__
类中定义__iter__方法
iter内部返回迭代器,return返回值
属性
@property
只有一个self参数
调用时不用括号
修饰器
公有成员
任何地方都可以访问
私有成员
只有在类的内部才可以访问,子类也不能访问
反射
gerattr(a,b)
根据字符串为参数(第二个参数b) 去 对象(第一个参数a) 中寻找与之同名的成员
hasattr(a,b)
根据字符串形式b,判断对象a中是否由该成员
setattr(a,b,c)
第一个参数对象,第二个参数设置名,第三个值
delattr
根据字符串形式,动态删除一个成员(在内存中实现)
内置函数
issubclass(a,b)
检查第一个参数a是否是第二个参数b的子类或子孙类
isinstance(对象,类)
检查第一个参数(对象) 是否是第二个参数(类或父类) 的实例
type
获取当前对象是由那个累创建的
组合/嵌套
函数与方法的区别
函数
在函数外部
类.xxx
xxx() --xxx就是函数
需要自己传self值
方法
在类的内部
对象.xxx---xxx就是方法
字段传self值
super
按照类的继承顺序,找下一个父类
易错的
self到底是谁
0 条评论
下一页