python学习笔记
2017-02-06 11:52
190 查看
静态方法
定义方法:
(1)@staticmethod装饰 (2)参数不用self
访问特性:
(1)不能引用或访问实例属性 (2) 可以通过类、类变量访问类属性
调用方法:
可以用类、类实例调用
本质:
在类中的一个普通函数而已 使面向对象程序中函数归属于类,易于代码管理
用法:
(1)与类相关,但不依赖或改变类与实例 创建不同的实例 (2)把类相关工具方法放入类中
类方法
定义方法:
(1) @classmethod (2)必须提供参数cls
访问特性:
不能引用或访问实例属性
调用方法:可以用类、实例调用
继承特性: 继承时,传入的类变量cls是子类,而非父类
用途:
(1)与类相关,但不依赖或改变类的实例 工厂方法,创类实例完成有关预处理
(2)在类内调用静态方法时不用硬编码类名
实例属性
类属性
类定义后就存在,而且不需要实例化
类属性使得相同类的不同实例共同持有相同变量
私有属性
不提供限制属性访问的关键字(无法限制类的各种属性在类外直接访问)
使用__开头的变量名加以标志,只有类对象自己能访问
使用_开头的变量名加以标志,应该只有类对象及其子类能访问(非强制性)
特殊属性
保存对象的元数据
__doc__
__name__
__dict__
__module__
__base__属性访问的特殊方法(反射)
主要工具函数
三种属性操作
将实现特殊协议方法的类作为另一个类的类属性
用来拦截和控制属性访问并可以重复使用
协议方法
非数据描述符(实现部分协议方法) 说明:所有类成员函数都是非数据描述符
注意:只能在新式类中使用
__call__()让类的实例如函数一样可调用
类
类也是一个对象,但是具有创建其自身实例的能力
类可以和一个变量进行绑定
可以为类增加属性
可以把它作为函数的参数传递
元类
类的创建和管理者
所有的类是元类的实例
类实例化过程
自定义元类
目的:对其创建的类进行预处理
继承type
定义__new__()方法
还可以定义__init__()方法
应用元类
类继承中提供关键字参数:metaclass=元类名
构造序列
__lt__()
__le__()
__gt__()
__ge__()
__eq__()
__ne__()构造可运算类
定义方法:
(1)@staticmethod装饰 (2)参数不用self
访问特性:
(1)不能引用或访问实例属性 (2) 可以通过类、类变量访问类属性
调用方法:
可以用类、类实例调用
本质:
在类中的一个普通函数而已 使面向对象程序中函数归属于类,易于代码管理
用法:
(1)与类相关,但不依赖或改变类与实例 创建不同的实例 (2)把类相关工具方法放入类中
类方法
定义方法:
(1) @classmethod (2)必须提供参数cls
访问特性:
不能引用或访问实例属性
调用方法:可以用类、实例调用
继承特性: 继承时,传入的类变量cls是子类,而非父类
用途:
(1)与类相关,但不依赖或改变类的实例 工厂方法,创类实例完成有关预处理
(2)在类内调用静态方法时不用硬编码类名
实例属性
类属性
类定义后就存在,而且不需要实例化
类属性使得相同类的不同实例共同持有相同变量
私有属性
不提供限制属性访问的关键字(无法限制类的各种属性在类外直接访问)
使用__开头的变量名加以标志,只有类对象自己能访问
使用_开头的变量名加以标志,应该只有类对象及其子类能访问(非强制性)
特殊属性
保存对象的元数据
__doc__
__name__
__dict__
__module__
__base__属性访问的特殊方法(反射)
主要工具函数
hasattr(obj_name,'属性名') setattr(obj_name,'属性名','值') getattr(obj_name,'属性名')属性包装
三种属性操作
(1)可读@property (2)可写@<property-name>.setter (3)可删@<property-name>.delete描述符
将实现特殊协议方法的类作为另一个类的类属性
用来拦截和控制属性访问并可以重复使用
协议方法
__get__() __set__() __delete__()数据描述符(实现全部协议方法)
非数据描述符(实现部分协议方法) 说明:所有类成员函数都是非数据描述符
注意:只能在新式类中使用
__call__()让类的实例如函数一样可调用
类
类也是一个对象,但是具有创建其自身实例的能力
类可以和一个变量进行绑定
可以为类增加属性
可以把它作为函数的参数传递
元类
类的创建和管理者
所有的类是元类的实例
类实例化过程
自定义元类
目的:对其创建的类进行预处理
继承type
定义__new__()方法
还可以定义__init__()方法
应用元类
类继承中提供关键字参数:metaclass=元类名
构造序列
__len__(self) __getitem__(self,key) __setitem__(self,key,value) __delitem__(self,key)构造iter
__iter__(self) __next__(self)构造可比较类
__lt__()
__le__()
__gt__()
__ge__()
__eq__()
__ne__()构造可运算类
__add__() __sub__() __mul__() __div__()
相关文章推荐
- Python学习笔记:Python Language Features
- Boost.Python学习笔记
- Python 学习笔记 - 4.if 表达式
- python文件读写实例学习笔记
- Python 学习笔记(1)
- python(异常处理机制,学习笔记摘要)
- python学习笔记(1)
- python学习笔记,整形,字符串
- Python学习笔记1
- Python学习笔记
- if __name__ (python学习笔记一,注意前面是双下划线)
- python学习笔记(二)
- python学习笔记(2)
- python学习笔记1
- Python学习笔记(一)
- [原创]Ruby学习笔记(4)-闰年、季节和月份天数的Ruby版和Python版
- Python学习笔记 Module
- Python 正则式学习笔记
- Python 学习笔记 - 2.自省