我希望能够+=在python中使用子类.也就是说,我希望能够+=在python中追加超类中的值:
class a():
a = 2
class b(a):
a += 4
b = b()
assert b.a == 6
Run Code Online (Sandbox Code Playgroud)
我知道我可以这样做
class b(a):
a = a.a + 4
Run Code Online (Sandbox Code Playgroud)
但我想以更简洁的方式做到这一点.此外,我似乎无法得到上述内容super().
你无法做你想做的事.这些是Python设计的有意义方面.
你不能做这个:
class a():
a = 2
class b(a):
a += 4
Run Code Online (Sandbox Code Playgroud)
因为a最后一行没有范围.您必须明确a可以找到的命名空间.
你找不到一种让它可以使用的方法super.原因是super至少需要一个类型作为参数,但是在你想要使用它的时候(在定义中b),b还不存在.所以,你不能给它super().
最后,你回答了自己的问题.你正在做正确的事,因为明确比隐含更好.