작성
·
142
1
마지막 예제에서 기본 점수였던 50이
s1은 20점을 올려 70이 출력되고
s2는 30점을 올리면 80이 출력이 되야하는데
s1의 setter가 끝난 value을 s2가 get 하는 것 같습니다.
이 오류는 어떻게 해결해야할지 궁금합니다.
답변 2
0
class LoggedScoreAccess:
def __init__(self):
self.value = None
def __get__(self, obj, objtype=None):
logging.info(f"Accessing {'score'} gibing {self.value}")
return self.value
def __set__(self, obj, value):
logging.info(f"Updating {'score'} gibing {value}")
self.value = value
class Student:
# Descriptor instance
score = LoggedScoreAccess()
def __init__(self, name, score):
self.score = score
# Regular instance attribute
self.name = name
s1 = Student("Kim", 50)
s2 = Student("Lee", 30)
# 점수 확인 (s1)
print(f"Ex2 s1 > {s1.score}")
s1.score += 20
print(f"Ex2 s1 > {s1.score}")
# 점수 확인 (s2)
print(f"Ex2 s2 > {s2.score}")
s2.score += 30
print(f"Ex2 s2 > {s2.score}")
0
안녕하세요.
같은 변수를 참조하고 있지 않은지 선언 스코프에 따라서
한 값을 참조 하고 있는 것 같습니다.
확인 해보세요!
전체 소스를 확인해보시고 안되면 소스를 붙여넣기 해주세여~
감사합니다.
26:00
기대한 결과값이 출력 되지 않네요