반응형
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
반응형
'파이썬' 카테고리의 다른 글
파이썬 Python 사전 생성 구문 (0) | 2020.10.01 |
---|---|
파이썬 목록에서 최대 값과 색인을 찾는 Pythonic 방법? (0) | 2020.10.01 |
파이썬 장고 폼에 체크 박스를 삽입하는 방법 (0) | 2020.10.01 |
파이썬 config.py에서 전역 구성 변수를 제공하는 대부분의 Pythonic 방법은 무엇입니까? (0) | 2020.10.01 |
파이썬 거대한 텍스트 파일에서 특정 줄로 이동하는 방법은 무엇입니까? (0) | 2020.10.01 |
댓글