Python 类 特殊方法

在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

你可能感兴趣的:(Python 类 特殊方法)