IT/Python

Python에서 self, this, me 차이 한 번에 정리하기

파파대니 2024. 12. 11. 12:14

목차

    반응형

    Python self 완벽 이해: 초보자를 위한 간단한 설명과 예제

    안녕하세요. 파파대니입니다.

    Python의 객체 지향 프로그래밍(OOP)에서 클래스 내부에서 사용되는 self는 매우 중요한 역할을 합니다.

    그러나 다른 언어에서 자주 등장하는 this와, 임의로 사용 가능한 me와 비교하면 차이점이 명확해집니다.

    이 글에서는 Python에서 self, this, me의 차이점과 사용법을 이해하기 쉽게 정리하겠습니다.

     

    1. self란?

    정의

    • self는 Python에서 클래스의 메서드가 호출될 때 암묵적으로 전달되는 현재 객체(instance)를 참조하는 매개변수입니다.
    • Python의 객체 지향 프로그래밍에서 현재 객체의 속성(attribute)이나 메서드에 접근할 때 사용됩니다.
    • self는 관례적인 이름으로, 다른 이름으로 변경할 수도 있지만, Python 커뮤니티에서는 self를 사용하는 것이 표준입니다.

    예제

    class Example:
        def __init__(self, value):
            self.value = value  # self를 사용하여 속성을 정의
    
        def show_value(self):
            print(f"Value: {self.value}")  # self를 사용하여 속성에 접근
    
    obj = Example(10)
    obj.show_value()  # 출력: Value: 10

     

    2. this란?

    정의

    • Python에서는 this가 특별히 정의되어 있지 않으며, 사용되지 않는 키워드입니다.
    • 그러나 Java, C++, JavaScript 같은 다른 언어에서는 this가 현재 객체를 참조하는 역할을 합니다.
    • Python에서도 self 대신 this라는 이름을 사용할 수는 있지만, 이는 비권장 방식으로 간주됩니다.

    예제 (비권장)

    class Example:
        def __init__(this, value):  # self 대신 this 사용
            this.value = value
    
        def show_value(this):
            print(f"Value: {this.value}")
    
    obj = Example(10)
    obj.show_value()  # 출력: Value: 10

     

    Python에서는 self를 사용하는 것이 권장됩니다.

     


    3. me란?

    정의

    • Python에서 me는 특별한 의미를 가지지 않는 일반 변수 이름입니다.
    • self와 마찬가지로 클래스 내 메서드의 첫 번째 매개변수 이름으로 사용할 수 있지만, 이는 Python의 관례를 따르지 않는 방식입니다.
    • 코드 가독성과 유지보수를 위해 self를 사용하는 것이 좋습니다.

    예제 (비권장)

    class Example:
        def __init__(me, value):  # self 대신 me 사용
            me.value = value
    
        def show_value(me):
            print(f"Value: {me.value}")
    
    obj = Example(10)
    obj.show_value()  # 출력: Value: 10
    Python에서는 self를 사용하는 것이 권장됩니다.
     

    4. 언어별 비교: self와 this

    키워드 Python Java C++ JavaScript
    self 현재 객체를 참조 사용하지 않음 사용하지 않음 사용하지 않음
    this 사용하지 않음 현재 객체를 참조 현재 객체를 참조 현재 객체를 참조
    me 사용하지 않음 사용하지 않음 사용하지 않음 사용하지 않음

    5. 왜 Python에서는 self를 사용할까요?

    • 명확성: Python은 명시적으로 현재 객체를 참조하는 방식(self)을 통해 가독성과 코드의 명료성을 높입니다.
    • 관례: self는 Python 개발자들 사이에서 표준으로 자리 잡아, 이를 따르는 것이 유지보수에 유리합니다.
    • 유연성: 다른 이름으로 대체할 수 있지만, 이를 남용하면 혼란을 초래할 수 있습니다.

     

    self, this, me에 대해서 정리하자면 아래와 같습니다.

    • self: Python에서 현재 객체를 참조하는 데 사용되며, 객체의 속성과 메서드에 접근할 때 필수적입니다.
    • this: Python에서 특별한 의미를 가지지 않지만, Java, C++, JavaScript와 같은 언어에서 현재 객체를 참조합니다.
    • me: Python에서 특별한 키워드가 아니며, self 대신 사용할 수 있으나 비권장됩니다.

    Python에서는 self를 사용하는 것이 관례적이고 명확성, 가독성 측면에서 가장 적합합니다.

    따라서, Python 코드에서는 self를 사용하는 습관을 들이는 것이 좋습니다.

     

     

    ⬇️ 참고하면 좋은 글 ⬇️

     

    파이썬 고급 문법 완벽 가이드: 데코레이터, 제너레이터, 메타프로그래밍 등

     

    파이썬 고급 문법 완벽 가이드: 데코레이터, 제너레이터, 메타프로그래밍 등

    파이썬 고급 문법 완벽 가이드: 데코레이터, 제너레이터, 메타프로그래밍 등 안녕하세요. 파파대니입니다.파이썬 개발 시 고급 문법과 고급 기술은 코드의 효율성, 가독성, 확장성을 높여주는

    papa-danny.tistory.com

     

    파이썬 클래스 데코레이터 완벽 가이드: 모든 메서드에 한 번에 적용하는 방법

     

    파이썬 클래스 데코레이터 완벽 가이드: 모든 메서드에 한 번에 적용하는 방법

    파이썬 클래스 데코레이터 완벽 가이드: 모든 메서드에 한 번에 적용하는 방법 안녕하세요. 파파대니입니다.클래스 내 모든 함수에 데코레이터를 적용하는 방법은 크게 3가지로 나눌 수 있습니

    papa-danny.tistory.com

     

    Python에서 한글 처리 시 인코딩 문제 해결하기 (UTF-8 vs ANSI)

     

    Python에서 한글 처리 시 인코딩 문제 해결하기 (UTF-8 vs ANSI)

    Python에서 한글 처리 시 인코딩 문제 해결하기 (UTF-8 vs ANSI)안녕하세요. 파파대니입니다.Python을 사용할 때, 코드 파일에 한글이 들어가면 인코딩을 제대로 설정하지 않으면 오류가 발생할

    papa-danny.tistory.com

     

    Python 함수 파라미터 순서 완벽 가이드: self, *args, **kwargs 이해하기

     

    Python 함수 파라미터 순서 완벽 가이드: self, *args, **kwargs 이해하기

    Python 함수 파라미터 순서 완벽 가이드: self, *args, **kwargs 이해하기 안녕하세요. 파파대니입니다. 이 글을 쓰게 된 이유는 Python에서 함수 파라미터의 순서를 이해하는 것이 매우 중요하기 때문입

    papa-danny.tistory.com

     

    반응형