본문 바로가기
파이썬

파이썬 Python 속성은 어떻게 작동합니까?

by º기록 2020. 10. 1.
반응형

Python 속성을 성공적으로 사용했지만 어떻게 작동하는지 모르겠습니다. 클래스 외부의 속성을 역 참조하면 property 유형의 개체 만 가져옵니다.

@property
def hello(): return "Hello, world!"

hello  # <property object at 0x9870a8>

그러나 클래스에 속성을 넣으면 동작이 매우 다릅니다.

class Foo(object):
   @property
   def hello(self): return "Hello, world!"

Foo().hello # 'Hello, world!'

바인딩되지 않은 Foo.hello 가 여전히 property 객체라는 것을 알았으므로 클래스 인스턴스화가 마법을 수행해야하지만 그 마법은 무엇입니까?

 

해결 방법

 

다른 사람들이 언급했듯이 설명 자라는 언어 기능을 사용합니다.

Foo.hello 클래스를 통해 액세스 할 때 실제 속성 개체가 반환되는 이유는 속성이 __ get __ (self, instance, owner) 특수 메서드를 구현하는 방법에 있습니다. :


 

참조 페이지 https://stackoverflow.com/questions/6193556

 

 

반응형