我只是在如下错误上花费了太长时间:
>>> class Odp():
def __init__(self):
self.foo = "bar"
>>> o = Odp()
>>> o.raw_foo = 3 # oops - meant o.foo
我有一个带有属性的类。我试图设置它,并想知道为什么它没有效果。然后,我回到原来的类定义,发现属性的名称稍有不同。因此,我正在创建/设置一个新属性,而不是本意。
首先,这不正是静态类型语言应该防止的错误类型吗?在这种情况下,动态类型的优势是什么?
其次,有没有办法在定义时禁止这样做Odp
,从而省去了自己的麻烦?