【发布时间】:2010-09-17 06:52:59
【问题描述】:
我经常想检查一个对象是否有成员。一个例子是在函数中创建单例。为此,您可以像这样使用hasattr:
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类型的对象,每次都一样。而且,通常,该方法会被多次调用。
【问题讨论】:
-
您能否举例说明您尝试拨打的电话以及该电话的预期回报?
标签: python exception introspection hasattr