本文最后更新于 600 天前,其中的信息可能已经过时,如有错误请发送邮件到wuxianglongblog@163.com
方法与属性
自定义类型中通常要定义一些方法和属性。
手动添加属性
属性可以手动添加:
class Leaf(object):
    """A leaf falling in the woods."""
    passleaf = Leaf()leaf.color = "green"leaf.color'green'这样添加的新属性只对当前定义的对象有效,不能在新对象上使用:
leaf2 = Leaf()leaf2.color---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Input In [6], in | ()
----> 1 leaf2.color
AttributeError: 'Leaf' object has no attribute 'color' | 添加普通方法
添加普通方法需要用def关键字定义。向Leaf类中添加一个新方法,表示树叶下落:
class Leaf(object):
    """A leaf falling in the woods."""
    def fall(self, season="autumn"):
        """A leaf falls."""
        print(f"A leaf falls in {season}!")leaf = Leaf()查看帮助:
leaf.fall?调用该方法时,self参数不用传入,会自动转化为对象leaf,因此只需要传入season参数。不带参数时,season用默认值:
leaf.fall()A leaf falls in autumn!构造方法.__init__()
通常通过构造方法.__init__(),在构造对象的时候添加属性。该方法在构造对象时会自动调用:
class Leaf(object):
    """A leaf falling in the woods."""
    def __init__(self, color="green"):
        self.color = colorleaf2 = Leaf("orange")leaf2.color'orange'由于在.__init__()函数中指定了默认参数,在构造时,也可以不传入color参数时,.color属性为默认值“green”:
leaf = Leaf()leaf.color'green'