Python将一个类的属性继承给另一个类
我有三个不同的类和一些变量Python将一个类的属性继承给另一个类,python,class,inheritance,Python,Class,Inheritance,我有三个不同的类和一些变量 class A(object): a = "Hello" b = "World" class B(object): a = "Hello" b = "World" class C(object): a = "Hello" b = "World" 如果所有类都通用a=“Hello”和b=“World”,如何将这些变量声明为全局类并将属性继承到这些表中 我试过用这种方法,但没能找到解决办法 class G(object
class A(object):
a = "Hello"
b = "World"
class B(object):
a = "Hello"
b = "World"
class C(object):
a = "Hello"
b = "World"
如果所有类都通用a=“Hello”
和b=“World”
,如何将这些变量声明为全局类并将属性继承到这些表中
我试过用这种方法,但没能找到解决办法
class G(object):
a = "Hello"
b = "World"
class A(object, G):
pass
在这里,我试图继承类的整个属性。请提前帮我解决这个问题,谢谢。将class
A定义为:
class A(G):
pass
重复基类对象
的问题在于,它会创建基类解析冲突,因为a
继承了它两次:一次直接继承,一次通过类G
间接继承。您就是这样做的。如果你有什么不明白的地方,或者我做错了什么,请在评论中告诉我
class A(object):
a = "Hello"
b = "World"
class B(A):
pass
class C(B):
pass
c = C()
print(c.a,c.b)
打印Hello World
你不必每次都重新声明a和b,否则你首先为什么要继承。如果声明它们,基本上就是用子变量覆盖父变量。如果你这样做,你可以用Suffor()来调用父的一个。你做了什么错误?G的可能副本已经是一个对象,你可以考虑不使用继承(并且引入额外的<代码> G < /Class >类),但是只使这两个变量为全局。谢谢AbjeJET,我从你的答案中得到了答案。感谢lota,无需再次使用相同的值声明a和b。你已经继承了!如果要为每个类存储新值,但仍然可以使用super()调用父类的类值,那么再次声明的唯一原因是这个答案非常容易误导。这是一个关于如何继承的糟糕例子。编辑了答案。很抱歉再次声明变量。这就是我打算做的,但是我忘记了删除额外的声明。您的示例类似于Abhijeetk431答案,非常感谢。是的,但请注意,您不必重新声明a和b!不客气!
class A(object):
a = "Hello"
b = "World"
class B(A):
something
class C(B):
something
c = C()
print(c.a,c.b)