프로그래밍 언어/Python

파이썬 __init__와 self 의 의미

Rateye 2022. 3. 26. 17:01
728x90
반응형
질문 : __init__와 self는 파이썬에서 무엇을합니까?

저는 파이썬 프로그래밍 언어를 배우고 있는데 제가 완전히 이해하지 못하는 것을 발견했습니다.

다음과 같은 방법으로 :

def method(self, blah):
    def __init__(?):
        ....
    ....

self 는 무엇을합니까? 그것은 무엇을 의미합니까? 필수인가요?

__init__ 메소드는 무엇을합니까? 왜 필요한가요? (기타.)

나는 그들이 OOP 구조라고 생각하지만 잘 모르겠습니다.

답변

이 코드에서 :

class A(object):
    def __init__(self):
        self.x = 'Hello'

    def method_a(self, foo):
        print self.x + ' ' + foo

... self 변수는 객체 자체의 인스턴스를 나타냅니다. 대부분의 객체 지향 언어는 이것을 객체에 정의 된 메소드에 숨겨진 매개 변수로 전달합니다. 파이썬은 그렇지 않습니다. 명시 적으로 선언해야합니다. A 클래스의 인스턴스를 만들고 해당 메서드를 호출하면 다음과 같이 자동으로 전달됩니다.

a = A()               # We do not pass any argument to the __init__ method
a.method_a('Sailor!') # We only pass a single argument

__init__ 메서드는 대략 파이썬에서 생성자를 나타내는 것입니다. A() 를 호출하면 __init__ 메서드에 첫 번째 매개 변수로 전달합니다. 추가 매개 변수 (예 : A(24, 'Hello') )도 인수로 전달됩니다.이 경우 생성자가 예상하지 않기 때문에 예외가 발생합니다.

출처 : https://stackoverflow.com/questions/625083/what-init-and-self-do-in-python
728x90
반응형