본문으로 바로가기

[Python] 클래스

category Data Science/Python 2015.03.11 19:06

클래스(class)는 함수나 변수들을 모아놓은 집합체이다. 하지만 단순한 데이터 자료형이라고 하기엔 그 활용도가 무궁무진하다고 할 수 있다. 클래스를 어떻게 설계하고 그 관계를 어떻게 설정하는가에 의해서 복잡한 것을 단순하게 불분명한것을 명확하게 바꿀 수 있는 능력을 발휘하기도 한다.

 

래스의 구조

class 클래스이름[(상속 클래스명)]:
    <클래스 변수 1>
    <클래스 변수 2>
    ...
    def 클래스함수1(self[, 인수1, 인수2,,,]):
        <수행할 문장 1>
        <수행할 문장 2>
        ...
    def 클래스함수2(self[, 인수1, 인수2,,,]):
        <수행할 문장1>
        <수행할 문장2>
        ...
    ...

class라는 키워드는 클래스를 만들 때 쓰이는 예약어이고 그 바로 뒤에는 클래스이름을 써 주어야 한다. 클래스 이름 위에 상속할 클래스가 있다면 괄호(())안에 상속할 클래스 이름을 쓴다. 클래스 내부에는 클래스 변수와 클래스 함수들이 있다.

 
class HousePark:
    lastname = "박"
    def __init__(self, name):
        self.fullname = self.lastname + name
    def travel(self, where):
        print("%s, %s여행을 가다." % (self.fullname, where))
    def love(self, other):
        print("%s, %s 사랑에 빠졌네" % (self.fullname, other.fullname))
    def fight(self, other):
        print("%s, %s 싸우네" % (self.fullname, other.fullname))
    def __add__(self, other):
        print("%s, %s 결혼했네" % (self.fullname, other.fullname))
    def __sub__(self, other):
        print("%s, %s 이혼했네" % (self.fullname, other.fullname))
    def __del__(self):
        print("%s 죽네" % self.fullname)
 
class HouseKim(HousePark):
    lastname = "김"
    def travel(self, where, day):
        print("%s, %s여행 %d일 가네." % (self.fullname, where, day))
 
cs

 

 
pey = HousePark("응용")
juliet = HouseKim("줄리엣")
pey.travel("부산")
juliet.travel("부산"3)
pey.love(juliet)
pey + juliet
pey.fight(juliet)
pey - juliet
 
cs

결과

박응용, 부산여행을 가다. 
김줄리엣, 부산여행 3일 가네. 
박응용, 김줄리엣 사랑에 빠졌네 
박응용, 김줄리엣 결혼했네 
박응용, 김줄리엣 싸우네 
박응용, 김줄리엣 이혼했네 
박응용 죽네  
김줄리엣 죽네

 

 __init__ : 생성자

     __del__ : 객체가 사라질때 호툴됨

     __add__ : + 연산자 오버로딩

     __sub__ : - 연산자 오버로딩

     self :  Service에 의해서 생성된 인스턴스를 지칭(호출시에는 안보임)

 

 

'Data Science > Python' 카테고리의 다른 글

파이썬 패키지 다운로드  (0) 2016.01.19
numpy 내장함수  (0) 2016.01.12
[Python] 클래스  (0) 2015.03.11
[Python] 데이터처리  (0) 2015.03.10
[Python] 파일 데이터 저장하기  (0) 2015.02.27
[Python] 파일과 예외  (0) 2015.02.23

댓글을 달아 주세요