Python and AI/python

Python에서 __init__ self의 역할

Re-Happy-Doc 2019. 8. 25. 22:55
class A(object):
    def __init__(self):
        self.x = 'Hello'
    def method_a(self, foo):
        print self.x + ' ' + foo
a = A()

1. self

self는 객체의 인스턴스 그 자체를 의미합니다. 대부분 객체지향 언어는 이걸 메소드에 안 보이게 전달하지만 파이썬에서 클래스의 메소드를 정의할 때는 self를 꼭 명시해하고 그 메소드를 불러올 때 self는 자동으로 전달됩니다.

2. __init__

__init__은 파이썬에서 쓰이는 생성자입니다.

위의 코드에서 A()는 생성자 __init__에 어떤 파라미터도 넘기지 않고, 그 결과로 A타입의 객체를 생성해 이를 반환받습니다.

A(24, 'Hello'))와 같이 쓰면 파라미터 2개를 받는 생성자가 필요한데 현재 __init__은 그 어떤 파라미터도 받지 않으니 exception이 발생합니다.