[PYTHON] 파이썬 : 객체 속성 참조 메소드 호출 방법
PYTHON파이썬 : 객체 속성 참조 메소드 호출 방법
어떤 메소드의 결과를 반환하기 위해 object.x와 같은 애트리뷰트 호출을하고 싶습니다. 예를 들어 object.other.other_method (). 어떻게해야합니까?
편집 : 나는 조금 빨리 물었다 : 나는 이것을 할 수있는 것처럼 보인다.
object.__dict__['x']=object.other.other_method()
이렇게하는 것이 좋은 방법일까요?
해결법
-
==============================
1.속성 데코레이터 사용
속성 데코레이터 사용
class Test(object): # make sure you inherit from object @property def x(self): return 4 p = Test() p.x # returns 4
특히 @property를 사용할 수있는 경우 __dict__를 사용하면 더럽습니다.
-
==============================
2.내장 된 속성 함수를 살펴보십시오.
내장 된 속성 함수를 살펴보십시오.
-
==============================
3.재산을 사용하십시오.
재산을 사용하십시오.
http://docs.python.org/library/functions.html#property
class MyClass(object): def __init__(self, x): self._x = x def get_x(self): print "in get_x: do something here" return self._x def set_x(self, x): print "in set_x: do something" self._x = x x = property(get_x, set_x) if __name__ == '__main__': m = MyClass(10) # getting x print 'm.x is %s' % m.x # setting x m.x = 5 # getting new x print 'm.x is %s' % m.x
-
==============================
4.other_method가 생성 될 때 한 번만 호출합니다.
other_method가 생성 될 때 한 번만 호출합니다.
object.__dict__['x']=object.other.other_method()
대신 당신은 이것을 할 수 있습니다.
object.x = property(object.other.other_method)
object.x가 액세스 될 때마다 다른 메소드를 호출합니다.
물론 변수 이름으로 객체를 사용하지 않는 것입니까?
from https://stackoverflow.com/questions/3166773/python-how-to-make-object-attribute-refer-call-a-method by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] h5py로 점진적으로 hdf5에 씁니다. (0) | 2018.11.24 |
---|---|
[PYTHON] Django 템플릿에서 키로 사전 접근하기 (0) | 2018.11.24 |
[PYTHON] PySpark 데이터 프레임에 새로운 열로 열 합계를 추가하십시오. (0) | 2018.11.23 |
[PYTHON] 음수 0을 파이썬 문자열에서 양수로 0으로 포맷하는 방법은 무엇입니까? (0) | 2018.11.23 |
[PYTHON] 사전 키가 존재하는지 확인하고 그것이 존재한다면 값을 처리하는 가장 효율적인 방법 (0) | 2018.11.23 |