CODEDRAGON ㆍDevelopment/Python
self
· 생성된 객체 자신을 의미합니다.
· 생성된 객체의 멤버에 접근할 때 사용합니다.
· 생성자의 파라미터로 사용됩니다.
· JAVA에서 this에 해당하는 키워드입니다.
클래스 정의
클래스 정의시 생성자의 파라미터로 사용됩니다.
class MyClass: def setdata(self, first, second): self.first = first #객체변수 생성 self.second = second #객체변수 생성 def sum(self): result = self.first + self.second return result
|
setdata()함수는 입력 인수로 self, first, second라는 3개의 입력값을 받고 있습니다. 그런데 일반적인 함수와는 달리 메서드의 첫 번째 입력 인수로 self라는 특별한 의미를 갖는 변수를 사용합니다.
멤버메소드 호출 1
객체명.멤버메소드(인자1, 인자2) |
mc = MyClass() mc.setdata(3, 7) |
"객체명.메서드" 형태로 호출할 때는 첫 번째 입력 인수(self)를 반드시 생략해야 합니다.
mc 객체의 setdata() 메서드가 호출되고 setdata() 메서드의 첫 번째 인수에는 자동으로 mc라는 객체가 입력값으로 들어가게 됩니다.
즉, MyClass의 setdata()메소드의 입력 인수는 self, first, second로 총 3개이지만 mc.setdata(3, 7)처럼 2개의 입력값만 주어도 mc라는 객체가 setdata() 함수의 첫 번째 입력을 받는 변수인 self에 대입되게 됩니다.
인자 |
대입되는 값 |
self |
mc
자동으로 첫 번째 인수로 실행 객체가 대입됩니다. |
first |
3 |
second |
7 |
멤버메소드 호출 2
클리스명.멤버메소드(객체명, 인자1, 인자2) |
mc = MyClass() MyClass.setdata(mc, 3, 7) |
"클래스명.멤버메서드" 형태로 호출할 때는 객체 mc를 입력 인수로 꼭 넣어 주어야 합니다.
멤버메소드 - setdata()
클래스의 정의 코드 |
동일한 해석 코드 |
self.first = first self.second = second |
mc.first = first mc.second = second |
멤버 메소드 - sum()
def sum(self): result = self.first + self.second return result |
mc.sum() |
입력으로 받는 값은 self밖에 없고 반환값은 result입니다.
mc.sum()으로 메소드를 수행하면 sum 메서드에 자동으로 객체 mc가 첫 번째 입력 인수인 self로 들어가게 됩니다.
메소드의 정의 코드 |
동일한 해석 코드 |
result = self.first + self.second |
result = mc.first + mc.second |
'Development > Python' 카테고리의 다른 글
실제 행렬을 사용한 곱셈의 예 (0) | 2019.11.09 |
---|---|
멤버 메서드 종류 (0) | 2019.11.09 |
else 블록 (0) | 2019.11.07 |
plt.imshow() (0) | 2019.11.06 |
다차원 실수형 데이터 시각화, seaborn.pairplot() (0) | 2019.11.05 |