【发布时间】:2011-06-14 22:47:56
【问题描述】:
我需要编写一个基类(在本例中为 A 类),它可能(但不总是)被子类化。我只想在基类没有子类的情况下调用“运行”方法,否则只从子类调用“运行”方法。
这就是我所拥有的,它似乎可以工作,但我想知道是否有更简单或更 Pythonic 的方式。
class A(object):
def __init__(self):
pass
def Run(self):
print "Calling A.Run()"
class B(A):
def __init__(self):
A.__init__(self)
pass
def Run(self):
print "Calling B.Run()"
subs = A.__subclasses__()
if subs: inst = [i() for i in subs]
else: inst = [A()]
[each.Run() for each in inst]
【问题讨论】:
标签: python oop methods subclass