我有以下类,它有两个类变量“值”和“渐变”。我将两个值分配给类变量,然后将其打印出来。但是,我将20赋给一个不存在的类变量(“限制”)。但编译器很高兴,似乎存储变量。这怎么可能? 我的假设是,如果变量名称不正确,我应该看到一条错误消息。我不应该吗?为类变量赋值python
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
感谢您的帮助
您正在分配*实例*属性,而不是类属性。不,Python不会限制这一点,这是完全正常的行为。 –
这是非法的任何其他面向对象语言或我梦想? – spgt
不要将打字模型与编程范例混淆。 C++和Java可能会使其非法,但其他语言不会。 Python是一种[动态语言](https://en.wikipedia.org/wiki/Dynamic_programming_language),您在这里想到静态语言。 –