정기적으로 개체에 멤버가 있는지 여부를 확인하고 싶습니다. 한 가지 예는 함수에서 싱글 톤을 만드는 것입니다. 이를 위해이 같은 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