Karll 블로그

[Python] 파이썬에서의 밑줄




파이썬에서 객체의 모든 속성은 public 이다.

하나 _ 다른 언어의 private 개념 (하지만 public 접근 가능)

둘 __ 하나와 비슷한 개념이지만 두개를 사용하면 이름 맹글링을 거친다.

  • 이름 맹글링(name mangling)

    ___ 과 같은 이름의 속성으로 변경

ex>

class Connector:
  def __init__(self, source):
    self.source = source
    self._timeout = 60
    self.__timeout2 = 120

conn = Connector("postgresql://localhost")
conn.source
-> 'postgresql://localhost'

conn._timeout
-> 60

conn._Connector__timeout2
-> 120

위와 같이 이름만 변경될뿐 접근 가능하다..

참고: (책) 파이썬 클린코드