descriptor 모듈

ufp.descriptor.classproperty(function)

class property를 만듭니다.

setter를 사용하기 위해서는 메타 클래스를 ufp.descriptor.ClassPropertyMetaClass 로 지정해야 합니다.

사용 예는 다음과 같습니다.

>>> import ufp.descriptor
>>> class Test(object):
...     __metaclass__ = ufp.descriptor.ClassPropertyMetaClass
...     _vlaue = 10
...     
...     @ufp.descriptor.classproperty
...     def value(self):
...             return self._vlaue
...             
...     @value.setter
...     def value(self, v):
...             self._vlaue = v
... 
>>> Test.value
10
>>> Test.value = 100
>>> Test.value
100
매개 변수:function (function) – 함수
반환:class property
반환 형식:ClassProperty
class ufp.descriptor.CachedProperty(method)

한번 실행한 결과를 기억하는 속성 장식자.

setter를 설정 할 경우, 설정 하려는 값을 반환해줘야 합니다. 반환하지 않을 경우, 설정된 값은 None이 됩니다.

deleter를 설정 할 경우, 메소드가 수행 된 이후 저장된 값이 삭제됩니다.

>>> class Test(object):
...     @CachedProperty
...     def value(self):
...             print('Calculating self.value')
...             return 10
...     
>>> test = Test()
>>> print(test.value)
Calculating self.value
10
>>> print(test.value) 
10
>>> test.value = 100
>>> test.value
100
>>> del test.value
>>> test.value
Calculating self.value
10
매개 변수:method (function) – 메소드.