我在玩 Python 中类级变量的风险,我认为列表作为类级变量的风险可以用元组来解决,例如,一个空元组。
拿:
class BaseClass(object):
default_sth = []
def foo(self):
for sth in self.default_sth:
pass
这是有风险的,因为:
class SubClass(BaseClass):
pass
a = SubClass()
a.default_sth.append(3)
print(BaseClass.default_sth) # [3]
使用None
而不是空元组(tuple()
?)可能会很危险,因为它在迭代它时会失败。
由于不可变性,我认为这是一个不错的选择,但我认为我在任何地方都没有看到任何人谈论这个。你觉得这个推理有什么缺陷吗?它是pythonic吗?