티스토리 뷰
클래스란? 변수와 함수를 모아놓은 집합
˚ 문법
class 클래스 이름:
변수 or 함수
class 사용하는 실습
>>> class fish : ... name = "연어" ... >>> var = fish() >>> var.name '연어'
* 클래스 자체가 클래스 안의 변수나 함수를 사용할 수 없기 때문에
클래스를 사용하기 위해서 인스턴스(객체)를 생성해서 사용해야 한다.
객체를 만들어서 사용한 예시
>>> class fish : ... name = "연어" ... >>> var1 = fish() >>> var1.name '연어' >>> var2 = fish() >>> var2.name '연어'
각각의 인스턴스는 독립적이기 때문에 이름을 변경시킬 수 있다.
>>> var2.name = '광어' >>> var2.name '광어'
인스턴스 별로 여러개의 함수를 만들 필요 없이 클래스 안에 함수를 생성해 두고 인스턴스를 만들때 한번에 복사해서 사용하도록 하는 아주 편리한 기능입니다.
>>> class fish : ... name = '연어' ... def explain(self) : ... print("%s 회는 정말 맛있어요" %self.name) ... >>> var1 = fish() >>> var1.name '연어' >>> var1.explain() 연어 회는 정말 맛있어요 >>> var2 = fish() >>> var2.name = '광어' >>> var2.name '광어' >>> var2.explain() 광어 회는 정말 맛있어요
self 키워드는 클래스를 복사해서 만든 모든 인스턴스들에게 자기 인스턴스를 사용하라는 뜻.
생성자와 소멸자
생성자란? 인스턴스가 생성될 때 설정하거나 실행할 함수를 의미
소멸자는? 인스턴스가 종료될 때 실행될 함수를 의미
생성자 예시
>>> class fish : ... def __init__(self, var) : ... self.name = var ... def explain(self) : ... print("%s 회는 정말 맛있어요" %self.name) ... >>> var = fish('연어') >>> var.explain() 연어 회는 정말 맛있어요
반면, 소멸자는 인스턴스가 종료될 때 메모리 정리 등의 작업과 같은 일을 하기 위해서 만들어진 기능이다.
상속이란? 클래스의 모든 변수나 함수를 다른 클래스에게 물려준다는 의미
상속의 예시
>>> class person : ... name = '윤지호' ... >>> class child(person) : # person 클래스를 상속받아 child 클래스를 생성한다. ... def hello(self) : ... print("%s 의 아들입니다." %self.name) ... >>> var = child() # child 클래스를 인스턴스로 생성한다. >>> var.hello() # var 인스턴스의 hello() 함수를 부른다. 윤지호 의 아들입니다.
* 파이썬은 다중상속이 가능합니다.
다중상속의 예시
>>> class person : ... name = '윤지호' ... def hi(self) : ... print("저는 %s의 아버지입니다." %self.name) ... >>> class location : ... loc = '서울' ... def location(self) : ... print("저는 %s에서 살고있습니다." %self.loc) ... >>> class child(person, location) : ... c_name = '윤호' ... def hello(self) : ... print("안녕하세요 저는 %s입니다." %self.c_name) ... >>> var = child() >>> var.hello() 안녕하세요 저는 윤호입니다. >>> var.location() 저는 서울에서 살고있습니다. >>> var.hi() 저는 윤지호의 아버지입니다.
반응형
LIST
'프로그래밍 > Python' 카테고리의 다른 글
파이썬 ! 사용자 정의 함수 ( def, return, print ) (0) | 2017.06.06 |
---|---|
파이썬 ! 반복문 ( for, range, while, break, continue) (0) | 2017.06.05 |
파이썬 ! 조건문 ( IF, 논리연산자, 비교연산자 ) (0) | 2017.06.04 |
파이썬 ! 데이터 유형 2 (리스트, 튜플, 딕셔너리, 불리언 ,셋) (0) | 2017.06.03 |
파이썬 ! 데이터 유형 1 (숫자, 문자열) (0) | 2017.06.01 |
댓글