programmer-blog
[Python]__init__과 self란 무엇인가 본문
클래스 안에는 크게 두가지가 있는데 속성과 메서드다. 메서드는 무언가 기능을 하는 함수를 말하고 속성은 데이터를 말한다.
Person이라는 클래스가 있을 때 이름,나이,직업 등의 정보가 속성이고 자기소개와 같은 기능이 메서드다.
그리고 __init__은 클래스의 속성을 생성한다.
인스턴스 초기화, 다시말해 인스턴스를 만든다.
__으로 시작하는 메서드는 파이썬이 자동으로 호출해 주는 함수로 __init__은 클래스 속성 생성자 역할을 한다.
일단 예제 코드를 보자. Person이라는 클래스를 만들고 Steve 인스턴스르 생성했다.
class Person():
def __init__(self,name,age,job):
self.name = name
self.age = age
self.job = job
Steve = Person('Steve','22','programmer')
self는 자기자신을 의미한다. 즉 인스턴스를 가리킨다.
Person이 self에 들어갈거고 Person 클래스 인스턴스인 Steve를 통해 각 속성에 접근 할 수 있다.
self 대신에 클래스 이름(Person)을 넣어도 상관없다.
마찬가지로 name,age,job이 클래스 인자를 통해 전달되면 인스턴스의 속성이 생성된다.
참고로 self는 파이썬의 예약어는 아니지만 암묵적으로 클래스에서 자기자신을 가리키는 단어로 쓴다.
print('이름:',Steve.name)
print('나이:',Steve.age)
print('직업:',Steve.job)
실제로 출력해보면 속성에 대해서 확인해 볼 수 있다.
'Python' 카테고리의 다른 글
[Python]비공개 속성,메서드에 대해서 (0) | 2020.05.24 |
---|---|
[Python]decorator(데코레이터) 란 무엇인가 (0) | 2020.05.24 |
[python]*,** packing에 대해서 (0) | 2020.05.22 |
[Python]class,instance,method란 무엇인가. (0) | 2020.05.20 |