Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python 변수가 있는 단일 밑줄 접두사의 의미는 무엇입니까?

<시간/>

단일 밑줄

클래스에서 이름 앞에 밑줄이 있는 것은 기본적으로 다른 프로그래머에게 속성이나 메서드가 비공개로 지정되어 있음을 나타내기 위한 것입니다.

semi-private에는 단일 밑줄을 사용하고 완전 개인 변수에는 이중 밑줄을 사용하는 것이 좋습니다.

PEP-8 인용 -

_single_leading_underscore:약한 "내부 사용" 표시기. 예 from M import *는 이름이 밑줄로 시작하는 개체를 가져오지 않습니다.

예시

다음 코드는 이중 밑줄 접두사와 단일 밑줄 접두사의 차이점을 보여줍니다.

class MyClass():
     def __init__(self):
             self.__fullrprivate = "World"
             self._semiprivate = "Hello"
mc = MyClass()
print mc._semiprivate
print mc.__fullprivate

출력

Traceback (most recent call last):
Hello
File "C:/Users/TutorialsPoint1/~_1.py", line 8, in <module>
print mc.__fullprivate
AttributeError: MyClass instance has no attribute '__fullprivate'