클래스? 사용자가 직접 정의할 수 있는 자료형. (독자적인 자료형/ 함수를 만들 수 있다)
그 클래스만의 전용 함수(메서드)와 속성을 정의할 수 있다.
(아무런 메서드나 속성을 정의하지 않을 경우에는 def ### 대신 pass를 써준다. )
class 클래스 이름:
def __init__(self, name, 인수, .. ): #생성자. 처음 생성시 사용할 변수들 정의할 수 있다.
self.name=name
print("Initialized!")
def 메서드 1(self): # 메서드를 정의. 위의 생성자에서 정의한 변수를 사용할 수 있다. 함수같은 개념
print("Hello "+ self.name+ "!")
def 메서드 2 (self): # 메서드 정의.
print("Good-bye "+self.name+"!")
객체? (=인스턴스) 정의한 클래스를 새로운 이름을 붙여서 낱개로 활용하는 각 개체를 객체라고 한다.
예를 들어, 위에서 정의한 클래스를 "클래스 이름"이라고 정의하면
m=클래스 이름("####")
이라고 작성함으로써 인수 ####를 사용하는 m이라는 "클래스 이름" 객체를 생성할 수 있다.
예시)
class man:
def __init__(self,name): #man(인수들.. ) 각 인수들을 뭐라고 정의할지
self.name=name
print("Initialized!")
def Hello(self): # Hello 라는 함수를 정의. 처음 함수를 정의할때 정했던 이름을 인수로 사용할 수 있다.
print("Hello "+ self.name+ "!")
def goodbye(self):
print("Good-bye "+self.name+"!")
m=man("David")
m.Hello()
m.goodbye()
결과)
Initialized!
Hello David!
Good-bye David!
클래스의 상속
class MyWindow(QMainWindow): # MyWindow라는 클래스를 생성하고, 이 클래스는 QMainWindow 라는 기존에 PyQt에서 제공하는 클래스를 상속받는다.
def __init__(self): # 인수 정의
super().__init__() #부모 클래스에 정의된 내용 호출.
self.setWindowTitle("PyStock") # 윈도우 창의 타이틀
self.setGeometry(300, 300, 900, 400) #위치, 크기(가로,세로) 조절
클래스 MyWindow는 기존에 PyQt에서 기본제공되는 QMainWindow 클래스의 속성을 그대로 부여받게 된다.
super().__init__() :
를 통해 부모 클래스에 정의된 내용을 호출할 수 있다.
부모 클래스 정의
부모 클래스 사용 및 출력
자식 클래스 정의
자식 클래스의 사용 및 출력 (속성 정의가 필요 없음)
'파이썬 > 파이썬 기초 코딩' 카테고리의 다른 글
파이썬에서의 경로 (0) | 2021.12.21 |
---|---|
파일 읽기, 쓰기 (.txt) (0) | 2021.12.21 |
리스트와 index (0) | 2021.12.16 |
Boolean (0) | 2021.12.05 |
Numpy 기초 (0) | 2021.12.05 |