본문 바로가기
프로그래밍/PYTHON

[17일차] python 클래스 / 그래픽 라이브러리

by B T Y 2017. 3. 3.
반응형

python 클래스 / 그래픽 라이브러리에 대해서 정리한다.



※ python 클래스와 상속을 이용해서 아래 문제를 해결한다.



- 입력받을 횟수를 입력하고 그다음엔 교수이면 1, 학생이면 2를 입력해서 구분해주고

1을 입력했으면 교수의 name, age, publications을 입력받고

2를 입력했으면 학생의 name, age, marks를 입력 받는다.

그다음 입력에 대한 결과를 차례대로 출력해준다.



( Sample Input을 입력받아서 Sample Output이 출력되도록 해야된다 )




( 교수와 학생의 공통 속성을 Person 클래스로 만들어두면

Professor와 Student 클래스를 만들때 이 속성을 상속 받아 사용이 가능하다 )



* Professor 클래스에서는 Person을 상속받고 그 외에 필요한 publication과 

구분에 필요한 cur_id를 만들어준다.


* 정보를 입력 받을때는 한줄로 받은다음 split(' ')을 이용해서 각 값을 해당 인스턴스 메서드에 set해준다.


* getdata()에서 값을 set해주고 putdata()에서는 값을 돌려준다.



* Student 클래스에서도 마찬가지로 생성자와 getdata(), putdata()에 대한 내용을 만들어준다.


* 여기서 cur_id 값은 학생이나 교수가 한명씩 추가 될때마다 1씩 늘어야 되기때매 

값을 누적시킬수 있도록 __num_of_student는 클래스 변수로 선언해줬다.



* 입력 받은 횟수만큼 값을 입력받고 거기에 대한 결과를 출력해줘야 하기때문에

입력 받은 값을 list에 넣어주고 list의 원소 번호로 그 값을 접근하는 방법으로 했다.



( 예제에 입력값을 입력해보니 출력 결과도 정상적으로 나온다 )





※ 그래픽 라이브러리




- Tcl/Tk(기본 모듈)

( 따로 설치없이 사용이 가능하지만 다른 그래픽 라이브러리들에 비해 기능이나 디자인쪽이 조금 떨어진다 )


- PyQT

* 많이 쓰이지만 사용법이 어렵고 복잡하다.

* C++용 그래픽 라이브러리(QT)를 python형식으로 가져왔기 때문에 

사용하려면 C++에 대한 어느정도 이해가 필요하다.


- matpotlib

* 수학 그래프(그래프)를 표현할때 사용하는 그래픽 라이브러리이다.


- pygame

* python 게임 개발용 라이브러리


...


그 밖에도 여러가지 다양한 그래픽 라이브러리들이 존재한다.






( 기본 모듈인 Tcl/Tk를 이용해서 만들어진 간단한 'hi there, everyone!' 출력기이다 )



* 위젯의 위치를 지정할때 pack()을 이용하고 top, bottom 같이 위치를 직접 지정해주지 않는다면

남는공간에 자동으로 위치가 지정된다.

( grid()를 이용하면 더 섬세한 위젯의 위치 지정을 할수 있다고 한다 )


* frame의 크기를 geometry()를 통해서 'root.geometry("200x100")' 과 같이 조정해줄수 있다.






* text공간을 하나 만들어주고 실행기에서 출력되는게 아닌 text공간에서 출력되도록 해봤다.


* text공간을 만들어 위치를 지정해주고 그안에 insert()를 이용해 클릭할때마다 text에 출력이 되도록 했다.



( text 공간에서만 'hi there, everyone!' 이 출력된다 )


graphic_hi.py



반응형

댓글