尝试在subclass.Is中调用超类的方法变量这可能,如果可能,这是一个好的实践或设计吗?
我已经编写了一个示例代码来执行流。下面是代码
class bar_for_foo_mixin():
def __init__(self):
self.z =0
def bar(self, q):
x=2
y=8
bar_for_foo_mixin.z= x+y+q
print(bar_for_foo_mixin.z)
def extented_bar(self):
self.bar(10)
class myfoo(bar_for_foo_mixin):
def __init__(self):
super(myfoo, self).__init__()
print("hello",self.z)
class oldFoo():
def __init__(self):
self.var = bar_for_foo_mixin()
self.var.bar(10)
现在我怎样才能使Z值在子类中有用呢?但是如果在子类中调用方法extended_bar()
,上面的代码就可以正常工作,但是有没有办法存储超类的方法变量并在子类中使用它呢?
第三类调用栏方法。期望打印输出。Z值应该存储在超类方法bar
中完成的计算。
hello 20
发布于 2019-03-15 05:29:20
您可以通过super()
函数让子类的__init__
方法调用基类的__init__
方法:
class myfoo(bar_for_foo_mixin):
def __init__(self):
super().__init__()
print("hello",self.z)
此外,由于z
被初始化为实例变量,因此您的bar
函数应将其更新为绑定到self
而不是类的变量:
def bar(self, q):
x=2
y=8
self.z= x+y+q
print(self.z)
https://stackoverflow.com/questions/55172270
复制相似问题