나는 다음과 같은 코드에 대한 몇 가지 질문이 있습니다부동산 파이썬에서 장식 및 설정 기능
1 class Test(object):
2 def __init__(self):
3 print "Object instance created."
4 self._x = raw_input("Initial value of x = ")
5 print "Initial value of x set."
6
7 def Property(func):
8 return property(**func())
9
10 @Property
11 def x():
12 def fget(self):
13 print 'Getting x'
14 return self._x
15 def fset(self, val):
16 print 'Setting x'
17 self._x = val
18 def fdel(self):
19 print 'Deleting x'
20 del self._x
21 doc = "A test case"
22 return locals()
- 왜
Property()
기능이 필요하세요? - 그냥
return locals()
을 입력 한 다음@property
을 데코레이터로 직접 사용할 수 없습니까?
내가 그렇게 할 때 x는 아무런 인자도 없으며 (아마도 '자기'라고) 말합니다. 나는 파이썬이 @x.setter
옵션을 가지고 있다는 것을 알고 있지만, 나는 2.4를 정기적으로 사용해야하므로 선택 사항이 아니다. 그렇더라도 은 여전히 하나의 블록에서 모두를 정의하는 것보다 덜 우아합니다.
@property
을 사용하여 한 블록에 모두 정의 할 수 있습니까?
본인의 실제 해결 방법이 마음에 듭니다. 사용을 시작할 수 있습니다! :) –