티스토리 뷰

프로그래밍/Python

파이썬 ! 클래스(Class)

나는연어다 2017. 6. 18. 18:14

클래스란? 변수와 함수를 모아놓은 집합


˚ 문법

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
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함