[python] self 매개변수 self.xxx __init__(self) 이해하기
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] __init__()메서드란 무엇인가 확실하게 알고 쓰자! 있고 없고 차이점
__init__() 메서드는 클래스의 인스턴스가 생성될 때 자동으로 호출되는 특별한 메서드입니다. 이 메서드를 사용하여 인스턴스 변수를 초기화할 수 있습니다. 당연히 클래스를 정의하지 않고 __init
nuri-go.tistory.com