property 사용시 동명의 속성이 이미 존재하면 어떻게 되나요?
269
8 asked
class Sample2:
def __init__(self):
self.x = 0
# self.y = 0 <<< ???
self.__y = 0
@property
def y(self):
print("I am getter!")
return self.__y
@y.setter
def y(self, value):
print("I am setter!")
if value < 0:
raise ValueError("y must be bigger than 0")
self.__y = value
return self.__y
@y.deleter
def y(self):
print("Goodbye")
del self.__y위 코드처럼 __y에 대한 property와 setter를 작성하려면 데코레이터 부분과 함수의 이름에 __y의 언더스코어를 제외한 y만 사용하면 된다고 말씀하셨는데, 만약 이미 y라는 이름을 가진 속성이 있다면 어떻게 동작하나요? 단순히 안티패턴이니 사용하지 않으면 되는걸까요?
Answer 1
1
안녕하세요. 별도로 생성됩니다.
print(Sample2.__dict__)
print(dir(Sample2))
출력 후 확인해 보세요!
{'__module__': '__main__', '__init__': <function Sample2.__init__ at 0x7f4680735dc0>, 'y': <property object at 0x7f468073af90>, '__dict__': <attribute '__dict__' of 'Sample2' objects>, '__weakref__': <attribute '__weakref__' of 'Sample2' objects>, '__doc__': None}
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'y']
>
강의자료가 모두 동일한 PPT 입니다. 잘못 등록된것 같습니다.
0
56
2
나만의 패키지 만들기(1) 강의 결과물에서 이미지가 겹치는 문제는 다음과 같이 수정할 수 있을 것 같습니다
0
72
2
메타클래스 오류가 납니다
0
77
2
_ _ 관련 질문
0
70
1
변수 앞 _ 하나를 사용할때
0
142
2
가상환경 설정 시 vscode 실행 오류
0
505
2
이미지 에러 발생
0
318
1
에러발생합니다2
0
258
1
Error발생합니다1
0
285
1
pypi 배포 중 에러 발생
0
532
2
강의 부분이 틀렸네요. 수정 요청드려요!
0
467
2
logging print 순서에 대한 질문입니다.
0
271
1
@contextlib.contextmanager 어노테이션, 데코레이터
0
282
1
mount라는 의미가 정확히 무엇인지 모르겠습니다.
0
491
1
파이썬 lv3 의 py_ad_4_2.py 에서 Image를 열기만 하고 닫지는 않으셨습니다.
0
341
1
오픈소스참여-나만의 패키지 만들기
1
499
3
gitignore 파일이 없어요
0
318
1
variable scope 강의 Ex8 질문드립니다.
0
351
1
오픈소스참여-나만의 패키지 만들기(1)
1
567
2
s1, s2 점수 확인
0
462
2
질문
0
266
2
descriptor 변수 공유문제
0
280
1
multipledispatch 에러
0
391
1
Ex6과 Ex7 관련
0
221
1

