我经常想检查一个对象是否有成员。一个例子是在函数中创建一个单例。为了这个目的,你可以使用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