클래스? 사용자가 직접 정의할 수 있는 자료형. (독자적인 자료형/ 함수를 만들 수 있다)

 

그 클래스만의 전용 함수(메서드)와 속성을 정의할 수 있다. 

(아무런 메서드나 속성을 정의하지 않을 경우에는 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

+ Recent posts