加上等于python中的子类

fre*_*281 0 python subclass

我希望能够+=在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().

Phi*_*ost 6

你无法做你想做的事.这些是Python设计的有意义方面.

你不能做这个:

class a():
    a = 2
class b(a):
    a += 4
Run Code Online (Sandbox Code Playgroud)

因为a最后一行没有范围.您必须明确a可以找到的命名空间.

你找不到一种让它可以使用的方法super.原因是super至少需要一个类型作为参数,但是在你想要使用它的时候(在定义中b),b还不存在.所以,你不能给它super().

最后,你回答了自己的问题.你正在做正确的事,因为明确比隐含更好.