본문 바로가기
파이썬 스터디 과제/점프투 파이썬

점투파-4(파이썬 날개달기)

by laoching 2015. 1. 11.
728x90
반응형

ㅋ파이썬의 꽃이라는 클래스에대해 알아보고 모듈, 예외처리 및 파이썬 라이브러리에 대해 알아 보자!!


클래스는 함수나 변수들을 모아놓은 집합이다.

클래스의 가장 간단한 예

class simple:

pass

아무 기능도 없는 클래스다. 외관만 클래스다. 하지만 이 클래스도 인스턴스라는 것을 만들 수 있다는데... 인스턴스가 뭘까?

=>인스턴스는 클래스에 의해 만들어진 객체로 한개의 클래스는 무수히 많은 인스턴스를 만들어 낼 수가 있다고 한다.

인스턴스를 만드는 방법

a=simple()

바로 simple()의 값을 돌려 받은 a가 인스턴스 이다. 함수를 사용해 그 결과 값을 돌려 받는 모습과 비슷하다.


클래스 변수

>>>class service:

.  .  .         secret = "나는 손가락이 열 한개다."

위 클래스 이름은 service다.

>>>pey = service()

위 처럼 하면 service라는 클래스에 가입이 된다.

secret을 알아 낼 수 있다.

>>>pey.secret

"나는 손가락이 열 한개다."

위 처럼 아이디에 가입된 클래스에서 제공하는 변수 사이에 (.)을 찍으면 알 수 있다.


클래스 함수


---------------------------------------------------------

>>>class service:

.  .  .        secret = "나는 손가락이 열 개다."

.  .  .        def setname(self,name)

.  .  .            self.name = name

.  .  .        def sum(self,a,b):

.  .  .            result = a+b

.  .  .            print "%s님 %s + %s = %s입니다." %(self.name,a,b,result)

.  .  .       

>>>

>>>pey=service()

>>>pey.setname("정상민")

>>>pey.sum(1,1)

정상민님 1 + 2 = 3입니다.

---------------------------------------------------------

self가 뭐지??

=> self는 파이썬 만의 독특한 변수다. 왜 self를 쓰는가는 파이썬 언어 그 자체를 보아야 한다고 한다.

우리는 그냥 클래스내의 함수의 첫번째 인자는

"무조건 self로 시작을 해야 인스턴스의 함수로 사용할 수 있다." 라고만 알아두자.


__init__가 뭐지??

---------------------------------------------------------

>>>class service :

.  .  .        secret = "나는 손가락이 열 개다."

.  .  .        def __init__(self,name):

.  .  .            self.name = name

.  .  .        def sum(self,a,b):

.  .  .            result = a+b

.  .  .            print "%s님 %s + %s = %s 입니다." %(self.name,a,b,result)

.  .  .       

>>>

>>>pey = service("정상민")

>>>pey.sum(1,2)

"정상민님 1 + 2 = 3 입니다."

---------------------------------------------------------

__init__를 쓰고 안쓰고의 차이는 다 눈치를 챗을 것이다.

그렇다 빨간색으로 색칠된 글짜 부분은 같은 의미를 갖는 것이다.

__init__를 사용하면 더 간단해 진다는 것이다!!


클래스 파고들기

클래스의 구조

---------------------------------------------------------

class 클래스 이름[(상속 클래스명)]:

<클래스 변수 1>

<클래스 변수 2>

.  .  .

def 클래스 함수1(self[,인수1,인수2,,,,]):

<수행할 문장 1>

<수행할 문장 2>

.  .  . 

def 클래스 함수2(self[,인수1,인수2,,,,]):

<수행할 문장 1>

<수행할 문장 2>

.  .  . 

.  .  . 

---------------------------------------------------------

클래스 이름 뒤에 상속할 클래스가 있다면 할 클래스 이름을 쓴다.

위의 예제에서

>>>pey = housej()

>>>pey.travel("독도")

위 처럼 하면 에러가 날 것이다. setname이 생략되어서 나는 오류다.

위 처럼 하기 위해서는 아까 위에서 본 __init__가 생각난다.

위에는 __init__를 사용하였다. 더 간단해졌다.

setname 부분이 __init__로만 바꿧는데도 간단해 졌다.


__del__ 함수 인스턴스가 사라질 때 호출된다.

>>>pey=housej("상민")

>>>del pey

위 처럼 하면 파이썬의 내장함수인 del에 의해 pey라는 인스턴스를 소멸시킬 수 있다.

간단하다.

상속

다른 클래스의 기능을 물려받는 것이 파이썬에서의 상속이다.

밑의 예제가 상속을 보여준다.


728x90
반응형

댓글