我經常想檢查一個對象是否有成員。一個例子是在函數中創建一個單例。爲了這個目的,你可以使用hasattr
這樣的:在Python中檢查成員存在
class Foo(object):
@classmethod
def singleton(self):
if not hasattr(self, 'instance'):
self.instance = Foo()
return self.instance
但是你也可以這樣做:
class Foo(object):
@classmethod
def singleton(self):
try:
return self.instance
except AttributeError:
self.instance = Foo()
return self.instance
是另外的一種方法更好呢?
編輯:添加了@classmethod
...但是請注意,這個問題是不是約如何做一個單身,但如何檢查對象中的一員的存在。
編輯:對於例如,典型的用法是:
s = Foo.singleton()
然後s
是Foo
類型的對象中,相同的各一次。而且,通常這種方法會被多次調用。
您能否舉一個您正在嘗試撥打的電話的例子以及該電話的預期回報? – Baltimark 2008-10-15 11:45:11