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 |