공개_애트리뷰트_사용

매일 공부(ML)·2022년 7월 5일
0

이어드림

목록 보기
92/146

비공개 애트리뷰트보다는 공개 애트리뷰트를 사용하라

class MyObject:
    def __init__(self):
        self.public_field = 5
        self.__private_field = 10

    def get_private_field(self):
        return self.__private_field

#객체 뒤에 점 연산자(.)를 붙이면 공개 애트리뷰트에 접근
foo = MyObject()
assert foo.public_field == 5

#애트리뷰트 이름 앞에 밀줄을 두 개(__)붙이면 비공개 필드

assert foo.get_private_field() == 10
#하위 클래스는 부모 클래스의 비공개 필드에 접근할 수 없다.

class MyParentObject:
    def __init__(self):
        self.__private_field = 71

class MyChildObject(MyParentObject):
    def get_private_field(self):
        return self.__private_field

baz = MyChildObject()
baz.get_private_field()

기억해야 내용

• 파이썬 컴파일러는 비공개 트리뷰트를 자식 클래스나 클래스 외부에서 사용하지 못하도록 엄격히 금지하지 않는다.

• 여러분의 내부 AP 에 있는 클래스의 하위 클래스를 정의하는 사람둘이 여러분이 제공하는 클래스의 애트리뷰트를 사용하지 못하도록 막기보다는 애트리뷰트를 사용해 더 많은 일을 할 수 있게 허용하다.

• 비공개 에트리뷰트로 (외부나 위 래스의) 접근을 막으려고 시도하기보다는 보호된 필드를 사용하면서 문서에 절한 가이드를 남겨라.

• 여러분이 코드 작성을 제어할 수 없는 하위 클래스에서 이름 충돌이 어나는 경우를 막고 싶을 때만 비공개 애트리뷰트를 용할 것을 권한다.

profile
성장을 도울 아카이빙 블로그

0개의 댓글