QT/Basic Tutorial

<PyQt><객체지향> class 내 self 는 무엇?

LEEHANDS 2021. 4. 27. 13:23
반응형
class MyClass:
    def method(self,str):
        print("method",str)
    def add(self,a,b):
        return a+b


obj = MyClass()
obj.method(obj.add(3,5))

self 를 이해하는 것은 파이썬 클래스를 이해하는데 필수적입니다.

 

먼저 MyClass 를 클래스로 정의합니다. 클래스는 메소드라는 매소드를 갖고있습니다.

매소드는 self , str 이라는 두 개의 입력을 사용합니다.

클래스를 통해서 매소드 를 호출한 후 str을 넘겨주면 됩니다.

 

 

Method 의 인자는 2개인데 첫번째인자는  self이고, 두번째 인자는 넣고자하는 str입니다.

 

MyClass.method(obj,str1)

 

클래스 이름을 통해 매서드를 호출하는 코드입니다.

MyClass라는 클래스 이름에 점(.)을 찍으면 당연히 해당 클래스 안에 있는 매서드를 접근할 수 있습니다.

 

Method 는 인자가 두 개인데 첫번째는 Self 이고 두번째 인자는 넣고자하는 STR 입니다.

위코드를 보면 self 자리에 str 을 넣고자하는 객체 (obj) 를 넘겨주고 STR 자리에는 문자열을 넘겨준 것을 확인해볼 수 있습니다.

 

위 코드에 self 의 핵심이 존재합니다.

어떤 클래스가 정의되면 해당 클래스 타입의 객체를 여러개 만들 수 있습니다.

앞서  MyClass 를 사용 여러개의 obj 를 만들 수 있는 것과 같습니다.

이때 클래스 안에 정리된 매소드는 obj 각각에 존재하는게 아니라 obj 에서 공유할 수 있도록 클래스 내부에 있습니다.

 

클래스에 있는 매소드라는 것을 호출하고 싶은데 도데체 OBJ에 STR을 넣을 것인지 지정해줘야 합니다.

즉, 어떤 매서드를 어떤 객체에 대해서 호출하는지를 지정하기 위해서 매서드의 첫 번째 인자로 self라는 키워드를 사용하고 self자리에 객체를 넘겨주는 것입니다.

 

그런데 위와 같이 매서드를 호출하는 것이 조금 어색하기때문에 다음과 같이 매서드를 호출 합니다.

obj.method(str1)
반응형

'QT > Basic Tutorial' 카테고리의 다른 글

<PyQt><객체지향 3> PyQT란?  (0) 2021.04.26
<QT> PyQt & QtDesigner 설치 (라즈베리파이4)  (0) 2021.03.04
Blocking Slave Example  (0) 2020.12.21
<QT> 단축키  (0) 2020.12.18
<QT> QT 설치하기 (Install)(라즈베리파이4)  (0) 2020.12.15