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 에 서 는 진정한 사유 가 없습니다.내부 에 서 는 개인 적 인 방법 과 속성의 이름 이 갑자기 바 뀌 고 회복 되 어 주어진 이름 으로 는 사용 할 수 없 는 것 처럼 보인다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.