python 에서 개인 속성 과 방법 을 활용 하여 정리 합 니 다.

어떻게 PYTHON 에서 사유 속성 과 방법 을 운용 합 니까

class File:

  def __init__(self, name):

    self.name = name

    self.code = "ABCDEF"

    

file_A = File("file_A")
\#파일 클래스 라 는 클래스 가 있다 고 가정 하고 대상 fileA。

file_A.code
\#속성 을 직접 호출 하면 속성 에 무엇이 있 는 지 볼 수 있 지만 비밀 비밀번호 라면 공개 할 수 없습니다.이렇게 처리 할 수 없습니다.

class File:

  def __init__(self, name):

    self.name = name

    self.__code = "ABCDEF"

    

file_A = File("file_A")

print(file_A.code)

\#비밀번호 가 공개 되 지 않 으 려 면 속성의 이름 에 를 더 하면,근 데 여기 가 잘 못 됐 습 니 다.

class File:

  def __init__(self, name):

    self.name = name

    self.__code = "ABCDEF"

    

file_A = File("file_A")

print(file_A.__code)

\#많은 사람들 이 외부 이름 이 없어 서 그런 줄 알 고,그러나 이곳 은 여전히 잘못 되 었 다.그것 은 이것 이 개인의 속성 이기 때문이다.

class File:

  def __init__(self, name):

    self.name = name

    self.__code = "ABCDEF"

  def open(self):

    print("This is the AAA file!")

    

file_A = File("file_A")

file_A.open()

\#속성 을 제외 하고 방법 도 개인 적 으로 사용 할 수 있 습 니까?답 은 돼.

class File:

  def __init__(self, name):

    self.name = name

    self.__code = "ABCDEF"

  def __open(self):

    print("This is the AAA file!")

    

file_A = File("file_A")

file_A.__open()

\#사유 방법 이후 사유 속성의 반환 결과 와 일치 하 는 것 을 알 수 있 습 니 다.

class File:

  def __init__(self, name):

    self.name = name

    self.__code = "ABCDEF"

  def __open(self):

    print("This is the AAA file!")

    

file_A = File("file_A")

print(file_A._File__code)

file_A._File__open()

\#PYTHON 에 방법 과 속성 에유형 명 은 개인의 속성 과 방법 을 볼 수 있다.

지식 포인트 확장:
python 의 기본 구성원 함수 와 구성원 변 수 는 모두 공개 되 어 있 으 며,python 의 개인 속성 과 방법 은 다른 언어 와 유사 한 Public,private 등 키워드 로 수식 되 지 않 습 니 다.python 에서 개인 변 수 를 정의 하려 면 변수 이름 이나 함수 이름 앞 에''만 추가 해 야 합 니 다.두 개의 밑줄 을 그 으 면 이 함수 나 변 수 는 사유 가 될 것 이다.내부 에서 python 은 name mangling 기술 을 사용 하여membername 바 꾸 기classname__membername,그래서 외부 에서 원래 의 개인 구성원 의 이름 을 사용 할 때 찾 을 수 없 음 을 알려 줍 니 다.예 를 들 면:

class Person:

def __init__(self):
self.__name = 'haha'#    
self.age = 22

def __get_name(self):##    
return self.__name

def get_age(self):
return self.age

person = Person()
print person.get_age()
print person.__get_name()
     :22 Traceback (most recent call last): File "E:\pythoner\zenghe\jay.py", line 38, in print person.__get_name() AttributeError: Person instance has no attribute '__get_name'

우리 가 정의 하 는name 은 사유 속성,get_name()은 개인 적 인 방법 입 니 다.직접 방문 하면 관련 속성 이나 방법 을 찾 을 수 없 음 을 알려 줍 니 다.그러나 만약 에 개인 적 인 관련 데 이 터 를 방문 하려 면 방문 할 수 있 습 니 다.엄 밀 히 말 하면 개인 적 인 방법 은 그들의 유형 외 에 방문 할 수 있 지만 처리 하기 가 쉽 지 않 습 니 다.Python 에 서 는 진정한 사유 가 없습니다.내부 에 서 는 개인 적 인 방법 과 속성의 이름 이 갑자기 바 뀌 고 회복 되 어 주어진 이름 으로 는 사용 할 수 없 는 것 처럼 보인다.

좋은 웹페이지 즐겨찾기