파이썬(python) 클래스(class) 와 생성자(init) 사용방법 및 예제
클래스를 만들때 파이썬은 생성자를 만들어야하는 경우 __init__를 사용하여 정의할 수 있습니다. 언더스코어(_) 두개를 앞뒤로 붙여서 초기화 합니다. 이것은 규칙입니다. 생성자는 클래스를 생성시 자동으로 실행되는 코드를 의미합니다.
■생성자 정의하기
>>> class Person: ... name = "" ... age = 0 ... def __init__(self,name, age): ... self.name = name ... self.age = age ... print("생성자 호출됨:" + self.name + " age: "+ str(age)) >>> a = Person("홍길동",30) 생성자 호출됨:홍길동 age: 30 >>> >>> a.name '홍길동'
클래스 생성시 생성자의 인자(파라미터)를 전달하여 초기화 하는 경우 , 아래 코드 스니펫 처럼, name 과 age의 변수 선언을 하지 않고도 사용가능하며 접근할 수 있습니다.
>>> class Person: ... def __init__(self,name, age): ... self.name = name ... self.age = age ... print("생성자 호출됨:" + self.name + " age: "+ str(age)) >>> a = Person("홍길동",30) 생성자 호출됨:홍길동 age: 30 >>> >>> a.name '홍길동'
■ 클래스 내에 함수 정의하기
클래스 내에서 함수(메서드)를 정의할 때 첫번째 인자(parameter)로 self를 사용해야합니다. 규칙이라고 생각하면 편합니다. 생성자(Constructor) 역시 함수 임으로 동일하게 적용됩니다.
>>> >>> class Person: ... def __init__(self,name, age): ... self.name = name ... self.age = age ... print("생성자 호출됨:" + self.name + " age: "+ str(age)) ... def whoAreYou(self): ... return "나는 {}입니다".format(self.name) ... def updatePerson(self, name, age): ... self.name = name ... self.age = age ... >>> a = Person("홍길동",30) 생성자 호출됨:홍길동 age: 30 >>> >>> a.whoAreYou() '나는 홍길동입니다' >>> >>> a.updatePerson("아이유",24) >>> a.whoAreYou() '나는 아이유입니다' >>>
[REFERENCE]
파이썬 자습서 :docs.python.org/ko/3/tutorial/classes.html#a-first-look-at-classes
wikidocs.net/book/1wikidocs.net/28