self는 파이썬에서 클래스의 인스턴스를 참조하는 데 사용되는 특별한 매개변수입니다. 클래스의 메서드에서는 첫 번째 매개변수로 self를 사용해야 합니다.
self 매개변수는 클래스의 인스턴스를 참조하기 위해 사용됩니다. 클래스의 인스턴스를 생성하면, self 매개변수는 해당 인스턴스를 참조하게 됩니다. 이를 통해 클래스의 메서드에서 인스턴스 변수에 접근하거나, 다른 메서드를 호출할 수 있습니다.
예를 들어, 다음과 같이 Person 클래스를 정의하고, __init__() 메서드에서 self 매개변수를 사용하여 인스턴스 변수 name과 age를 초기화할 수 있습니다.
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def say_hello(self):
print("Hello, my name is", self.name, "and I am", self.age, "years old.")
person1 = Person("Alice", 25)
person2 = Person("Bob", 30)
person1.say_hello()
person2.say_hello()
위 코드는 Person 클래스를 정의하고, __init__() 메서드에서 self 매개변수를 사용하여 name과 age 인스턴스 변수를 초기화합니다. say_hello() 메서드에서도 self 매개변수를 사용하여 인스턴스 변수 name과 age를 참조하고, 인사말을 출력합니다.
마지막으로, person1과 person2 객체를 생성하고, say_hello() 메서드를 호출하여 인사말을 출력합니다.
따라서, self 매개변수는 클래스의 인스턴스를 참조하기 위해 사용되며, 클래스의 메서드에서는 첫 번째 매개변수로 self를 사용해야 합니다.
만약 self 매개변수를 사용하지 않는다면 어떻게 되는지 보시죠
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def say_hello():
print("Hello, my name is", name, "and I am", age, "years old.")
person1 = Person("Alice", 25)
person2 = Person("Bob", 30)
person1.say_hello()
person2.say_hello()
위 코드는 Person 클래스를 정의하고, __init__() 메서드에서 name과 age 인스턴스 변수를 초기화합니다. say_hello() 메서드에서는 self 매개변수를 사용하지 않고, name과 age 인스턴스 변수를 직접 참조하려고 합니다.
하지만, say_hello() 메서드에서 name과 age 인스턴스 변수를 직접 참조할 수 없으므로, 에러가 발생합니다.
따라서, 파이썬에서 클래스의 메서드에서 self 매개변수를 사용하지 않으면, 해당 메서드에서는 클래스의 인스턴스를 참조할 수 없으므로, 인스턴스 변수에 접근하거나, 다른 메서드를 호출할 수 없게 됩니다.
'성장일기 > 파이썬' 카테고리의 다른 글
[python] json 모듈로 데이터 파싱하기 - 2번째 (0) | 2023.06.30 |
---|---|
[python] json모듈로 데이터 파싱하기 (0) | 2023.06.30 |
[python] __init__()메서드란 무엇인가 확실하게 알고 쓰자! 있고 없고 차이점 (0) | 2023.06.29 |
[python] 파이썬에서 API를 사용하기 위한 첫번째 작업 ( requests 모듈) (0) | 2023.06.28 |
[python] 데이터 입력 받기 input()함수 사용법 (0) | 2023.06.26 |