본문 바로가기
프로그래밍 언어(Programming Languages)/파이썬(Python)

[Python] _method, __method, method: 언더스코어의 비밀 🔧🔐

by 데이터 벌집 2023. 11. 9.

파이썬 메서드 앞의 언더스코어: _ vs __ vs 없음

안녕하세요! 🌟 오늘은 파이썬 클래스 내의 메서드 이름 앞에 있는 언더스코어 _와 __에 대해 알아보려고 합니다. 무엇을 의미하는지, 언제 사용하는지에 대해 살펴보겠습니다.

언더스코어의 비밀

1. _method():

"프라이빗"으로 간주되는 메서드입니다. 클래스 내부에서 주로 사용됩니다.

class Car:
    # Protected Method
    def _fill_gas(self):
        return "기름을 넣습니다."

2. __method():

 

이름에 변경이 가해져 외부에서 직접 접근하기 어려워집니다.

class Car:
	# Private Method
    def __private_method(self):
        return "이것은 비공개 메서드입니다."

3. method():

class Car:
    def drive(self):
        return "차가 달립니다."

 

 

 

다양한 접근 제한자와 메서드들을 합쳐 Car 클래스를 만들어보겠습니다.

 

class Car:
    # Public Method
    def drive(self):
        return "차가 달립니다."

    # Protected Method
    def _fill_gas(self):
        return "기름을 넣습니다."

    # Private Method
    def __private_method(self):
        return "이것은 비공개 메서드입니다."

# 클래스 인스턴스 생성
my_car = Car()

# Public Method 호출
print(my_car.drive())  # 출력: 차가 달립니다.

# Protected Method 호출 (보통 외부에서 호출하지 않지만 호출은 가능합니다)
print(my_car._fill_gas())  # 출력: 기름을 넣습니다.

# Private Method 호출 (외부에서 직접 호출하면 오류 발생)
# print(my_car.__private_method())  # AttributeError 발생

# 이름 변경을 통한 Private Method 호출
print(my_car._Car__private_method())  # 출력: 이것은 비공개 메서드입니다.

 

 

메서드 이름 앞의 언더스코어의 유무와 개수에 따라 접근성이 달라집니다. 개발할 때 이를 잘 활용하여 코드의 품질을 높일 수 있습니다. 🚗🔧🔐

 

메서드 앞의 언더스코어는 단순한 문법적인 표기일 뿐이라기보다는 개발자 간의 약속입니다. 이러한 약속을 준수하면 코드의 가독성이 높아지고, 코드의 오류 가능성을 줄일 수 있습니다. 📜✨

 

파이썬에서의 OOP(Object-Oriented Programming)를 이해하고 활용하는 데 있어 이러한 접근 제한자의 활용은 필수적입니다. 실제 개발 환경에서도 적절한 접근 제한자를 활용하여 더 안정적이고 효율적인 코드를 작성하는 것을 잊지 말아야 합니다. 🚀