的isinstance
下使用似乎並沒有在Python 2.5.2或2.6.2工作:使用Python的isinstance
class BananaCake:
def __init__(self):
print 'Banana Cake'
class ChocolateCake:
def __init__(self):
print 'Chocolate Cake'
class CakeFactory:
@staticmethod
def create(name):
if name == 'banana':
return BananaCake
elif name == 'chocolate':
return ChocolateCake
else:
return None
if __name__ == '__main__':
banana_cake = CakeFactory.create('banana')
print isinstance(banana_cake, BananaCake)
以上isinstance
將返回False
即使banana_cake是BananaCake
一個實例。有誰知道我可能會錯過什麼?我在測試腳本中執行此檢查。您應該能夠複製並粘貼上述內容,並在Python腳本中輕鬆運行。