在python代码开头,需要添加__metaclass__=type,表示新式类
构造方法
用__init__实现,例如
class foorbar:
def __init__(self):
self.somvar=42
>>>f=foorbar()
>>>f.somvar
42
构造方法在python中特别常用
继承
写法 class b(a) 表示b类继承a类,若子类继承后重写init,则有可能会导致a类的init中的某些功能丢失,此时需要用到super
在继承类的init中添加一行 super(a).__init__()即可初始化超类
属性
为了简化使用方法,引入属性property
使用方法 property(方法1,方法2,方法3,字符串),四个方法分别对应fget fset fdel doc,方法1必须是只读,方法2必须是只写,方法3必须是删除,第四个表示说明。
理论上,新式类中应该使用property而不是访问器方法
还可参考 https://www.runoob.com/python/python-func-property.html
装饰器(了解)
静态方法 无self参数,使用staticmethod(函数名) 的方式,或者在方法上一行用@staticmethod
类成员方法 有cls参数,使用classmethod(函数名) 的方式,或者在方法上一行用@classmethod
迭代器
定义方法__iter__,该方法返回一个迭代器,一般放在会在for中循环使用的对象中,同时类中需要实现next方法,即循环生成迭代器的方法。
生成器
任何包含yield的语句的函数成为生成器,函数会产生多个值,每次返回一个值,与迭代器不同,迭代器将多个值一起返回,迭代。因为迭代器每次到yield时会返回当前所有执行信息。
样例参考 https://www.runoob.com/python3/python3-iterator-generator.html
网友评论