美文网首页
Python 类 特殊方法

Python 类 特殊方法

作者: 一个神经质的工程师 | 来源:发表于2020-03-24 16:34 被阅读0次

    在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 类 特殊方法

          本文链接:https://www.haomeiwen.com/subject/bomoyhtx.html