self

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