inflearn logo
강의

Course

Instructor

Python for Everyone: Learn Essential Syntax Feat. Open Source Package Distribution (Inflearn Original)

Property(2) - Getter, Setter

property 사용시 동명의 속성이 이미 존재하면 어떻게 되나요?

269

ikarte6668758

8 asked

0

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라는 이름을 가진 속성이 있다면 어떻게 동작하나요? 단순히 안티패턴이니 사용하지 않으면 되는걸까요?

python

Answer 1

1

niceman

안녕하세요. 별도로 생성됩니다.

 

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