为 class 变量赋值 python

assigning a value to a class variable python

我有以下 class,它有两个 class 变量 "value" 和 "gradient"。我将两个值分配给 class 变量和然后打印出来。但是后来我将 20 分配给一个不存在的 class 变量 ("limit")。但是编译器很高兴并且似乎存储了变量。这怎么可能? 我的假设是,如果变量名不正确,我应该会看到一条错误消息。我不应该吗?

class wire:
    def __init__(self,value,gradient):
        self.value     = value
        self.gradient  = gradient

XX = wire(10,0.05)
print XX.value , XX.gradient

XX.limit = 20
print XX.value , XX.gradient, XX.limit

感谢您的帮助

这些是实例变量,不是 class 变量。

但我不知道您为什么会遇到错误。在 __init__ 或其他任何地方定义这些属性之间没有区别。无论哪种方式,您都在向实例添加新属性。