Python의 self 키워드

Muhammad Waiz Khan 2021년7월18일
Python의 self 키워드

이 튜토리얼은 파이썬에서self키워드의 목적과 사용을 설명합니다. 객체 지향 프로그래밍에는 클래스가 있으며 각 클래스에는 다양한 속성과 메서드가 있습니다. 객체 나 클래스의 인스턴스가 생성 될 때마다 생성자 (Python에서는__init__()메소드)가 호출되어 인스턴스의 속성을 초기화합니다.

클래스의 인스턴스를 생성하는 동안 인스턴스 속성을 인수 및 기타 변수와 구별하거나 지정해야합니다. 그리고 여기에서self키워드가 필요하여 동일한 이름의 로컬 변수 나 인수가 아닌 인스턴스 속성에 값을 전달하도록 지정합니다.

car 클래스의 경우 color 매개변수를 __init__() 메서드에 전달하여 car 클래스의 color 속성을 초기화하고 인스턴스의 color 속성을 지정한다고 가정합니다. self.color로, car 클래스에 color 속성이 있고 이 속성에 값을 전달합니다.

마찬가지로car클래스의self.start()메소드와 같은self키워드를 사용하여 클래스의 인스턴스 메소드를 호출 할 수도 있습니다. 간단히 말해서self키워드를 사용하면 사용자가 클래스 인스턴스의 속성과 메소드를 지정하고 액세스 할 수 있습니다.

Python에서self키워드의 사용 및 예제 코드

이제 예제 코드를 통해 인스턴스의 메서드와 속성을 지정하기 위해 Python에서self키워드를 사용하는 방법을 살펴 보겠습니다.

아래의 첫 번째 예제 코드는 초기화되는 인스턴스의 속성을 초기화하기 위해__init__()메소드에서self키워드를 사용하는 방법을 보여줍니다. 다음과 같은 방법으로 인스턴스 속성을 초기화 할 수 있도록 초기화하거나 값을 할당하기 전에 변수를 선언하거나 만들 필요가 없습니다.

class car:
    def __init__(self, model, color):

        self.model = model
        self.color = color


mycar = car("model XYZ", "red")
print(mycar.model)
print(mycar.color)

출력:

model XYZ
red

위에서 볼 수 있듯이__init__()메서드는 클래스의 새 인스턴스를 만들 때 자동으로 호출되고 해당 속성이 초기화됩니다. self는 인스턴스의 메소드 및 속성에 액세스하기위한 메소드의 매개 변수 여야합니다.

아래 예제 코드는self키워드를 사용하여 Python의 다른 클래스 메서드 내에서 인스턴스/클래스 메서드를 호출하는 방법을 보여줍니다.

class car:
    def __init__(self, model, color):

        self.model = model
        self.color = color

        self.start()

    def start(self):

        print(self.model + ", has started!")


mycar = car("model XYZ", "red")

출력:

model XYZ, has started!

위의 예제 코드에서와 같이self키워드를 사용하여 클래스 메서드를 호출하고 클래스의 인스턴스를self매개 변수로 전달하여 모든 클래스 메서드의 속성에 액세스 할 수 있습니다.

관련 문장 - Python Keyword