我需要編寫一個基類(在本例中爲類A),它可能但不總是被分類。我只想調用基類中的'Run'方法,只要它沒有子類別,否則只調用子類中的'Run'方法。只調用基類,如果它不是Python的子類
這是我的,它似乎工作,但我想知道如果有一個更容易或更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]
實際實現中'__init __()'方法中可能存在實際代碼。我只是包括'傳遞'版本,以確保我做得正確:) – tMC 2011-06-14 23:05:31