inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

모두를 위한 파이썬 : 필수 문법 배우기 Feat. 오픈소스 패키지 배포 (Inflearn Original)

Property(2) - Getter, Setter

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

269

양념치킨

작성한 질문수 8

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

답변 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

59

2

나만의 패키지 만들기(1) 강의 결과물에서 이미지가 겹치는 문제는 다음과 같이 수정할 수 있을 것 같습니다

0

72

2

메타클래스 오류가 납니다

0

77

2

_ _ 관련 질문

0

70

1

변수 앞 _ 하나를 사용할때

0

142

2

가상환경 설정 시 vscode 실행 오류

0

512

2

이미지 에러 발생

0

318

1

에러발생합니다2

0

258

1

Error발생합니다1

0

287

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

568

2

s1, s2 점수 확인

0

464

2

질문

0

268

2

descriptor 변수 공유문제

0

283

1

multipledispatch 에러

0

394

1

Ex6과 Ex7 관련

0

223

1