类变量对于不同的实例具有不同的值

这个问题在这里已经有了答案:

  • 静态类变量可能吗? 16个答案

  • 只要您为实例指定名称,它就会获得一个影响类属性的实例属性。

    您可以分配给类属性的唯一方法是分配给类的属性,而不是实例的属性,例如,如果您有实例,则需要执行以下操作:

    x1.__class__.pi = 20
    # If you're on Py3, or on Py2 and x1 is an instance of a new-style class,
    # using type(x1) is slightly "nicer" than manually accessing dunder special
    # variables, but unfortunately, it doesn't work on old-style class instances
    # For new-style class instances though, the following is equivalent:
    type(x1).pi = 20
    

    如果您希望所有与x1类型相同的实例显示更改。 这从__class__ (或通过type函数)获取类本身,然后分配给它。

    如果您意外创建了一个实例属性,并且想要再次公开该类属性,则可以执行:

    del x1.pi
    

    如果存在一个名为pi的实例属性,则会成功,如果不存在,则会raise AttributeError (如果它存在,它不会删除该类属性,您需要执行del x1.__class__.pi / del type(x1).pi要做到这一点)。

    链接地址: http://www.djcxy.com/p/78777.html

    上一篇: Class variable have different values for different instances

    下一篇: Are Class variables mutable?