Python

파이썬(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/85

wikidocs.net/book/1wikidocs.net/28

Leave a Reply

error: Content is protected !!