속성이 변경 될 때마다 데이터의 유효성을 검사하려는 클래스가 있습니다. setter가 참조 할 수있는 클래스 변수로 유효한 옵션을 저장하고 싶지만 @var.setter
옵션에서 나는 이라는 클래스 변수를 전혀 참조 할 수 없습니다.입니다.@ var.setter 함수가 클래스 변수에 액세스 할 수없는 이유는 무엇입니까?
왜 그럴까요?
코드 예제 :
class Standard():
def __init__(self):
self.variable1 = 1
self.variable2 = 2
@property
def variable1(self):
# This works
print(self.variable2)
return self.__variable1
@variable1.setter
def variable1(self, var):
# This doesn't work
print(self.variable2)
self.__variable1 = var
x = Standard()
print(x.variable1)
x.variable1 = 4
print(x.variable1)
이 출력 :
AttributeError: 'Standard' object has no attribute 'variable2'
이 명확하지 않습니다.
'self.variable2'은 아직 e가 아닙니다. 'self.variable1'에 할당 할 때 xist. – vaultah
의도적으로'__init__'에'self.variable1'을 설정합니까? 아니면'self .__ variable1'을 의미합니까? –