python:如何针对 MRO 从子对象 class 调用父对象 class 的函数
python: How to call a function of parent class from child class object against MRO
class a:
def fun1(self):
print 'inside a'
class b(a):
def fun1(self):
print 'inside b'
class c(a):
def fun1(self):
print 'inside c'
class d(b,c):
pass
ob=d()
d.fun1()
上面的代码将根据 MRO.Is 打印 'inside b' 有什么方法可以从 class C 调用带有 d 对象的函数?
以下对我有用。
ob=d()
c.fun1(ob) # class_name.function_name(obj reference)
输出:
在 c
里面
正如其他人指出的那样,这是一个坏主意,也是一种糟糕的做法。
也就是说,实现的方法是:
class d(b,c):
def fun1(self):
# d uses c's fun1() instead of b's
return c.fun1(self)
class a:
def fun1(self):
print 'inside a'
class b(a):
def fun1(self):
print 'inside b'
class c(a):
def fun1(self):
print 'inside c'
class d(b,c):
pass
ob=d()
d.fun1()
上面的代码将根据 MRO.Is 打印 'inside b' 有什么方法可以从 class C 调用带有 d 对象的函数?
以下对我有用。
ob=d()
c.fun1(ob) # class_name.function_name(obj reference)
输出: 在 c
里面正如其他人指出的那样,这是一个坏主意,也是一种糟糕的做法。
也就是说,实现的方法是:
class d(b,c):
def fun1(self):
# d uses c's fun1() instead of b's
return c.fun1(self)