파이썬 5일차 - 2
Programing/Python 2012. 5. 14. 15:28 |1) 클래스
함수 | 설명 | 예제 (X, Y는 인스턴스) |
__init__ | 생성자(Constructor), 인스턴스가 만들어 질 때 호출 | |
__del__ | 소멸자(Destructor) 인스턴스가 사라질 때 호출 |
|
__add__ | 연산자 "+" | X + Y |
__or__ | 연산자 "|" | X | Y |
__repr__ | print X | |
__call__ | 함수호출 X()했을 때 호출 | |
__getattr__ | 자격부여 | X.메소드 |
__getitem__ | 인덱싱 | X[i] |
__setitem__ | 인덱스 치환 | X[key] = value |
__getslice__ | 슬라이싱 | X[i:j] |
__cmp__ | 비교 | X > Y |
class FourCal():
def __del__(self):
print ("클래스가 죽었습니다.\n")
def setNum( self, a, b ):
self.first = a
self.second = b
def sum( self ):
print ("%s + %s = %s\n" % (self.first,self.second,self.first+self.second))
def mul( self ):
print ("%s * %s = %s\n" % (self.first,self.second,self.first*self.second))
def sub( self ):
print ("%s - %s = %s\n" % (self.first,self.second,self.first-self.second))
def div( self ):
print ("%s / %s = %s\n" % (self.first,self.second,self.first/self.second))
test = FourCal()
test.setNum(9,3)
test.sum()
test.sub()
test.mul()
test.div()
9 + 3 = 12
9 - 3 = 6
9 * 3 = 27
9 / 3 = 3.0
다른 언어와 마찬가지로 클래스 사용법은 비슷하니 금방 익숙해질 듯 싶다.
기억해야 할것은 클래스 내 함수 사용시에는 반드시 ( self ) self을 넣어줘야한다.
파이썬 언어 특징이니 그냥 기억하면 될 듯 싶다.
연산자 오버로딩
class ChoHouse:
lastName= "조"
def __init__(self, name):
self.FullName = self.lastName + name
def __del__(self):
print ("%s가 파산했습니다.\n" % self.FullName)
def setMoney( self, money ):
self.Money = money
print ("%s의 지갑에 들어 있는 돈은 %s입니다.\n" % (self.FullName, self.Money))
def __add__( self, you):
print("%s가 %s한테 돈을 빌렸다.\n" % (self.FullName,you.FullName))
def __sub__( self, you):
print("%s가 %s한테 돈을 빌렸다.\n" % (you.FullName,self.FullName))
jaeho = ChoHouse("재호")
jaeho.setMoney(10000000)
jinho = ChoHouse("진호")
jaeho + jinho
jaeho - jinho
jinho + jaeho
jinho - jaeho
del jinho
조재호의 지갑에 들어 있는 돈은 10000000입니다.
조재호가 조진호한테 돈을 빌렸다.
조진호가 조재호한테 돈을 빌렸다.
조진호가 조재호한테 돈을 빌렸다.
조재호가 조진호한테 돈을 빌렸다.
조진호가 파산했습니다.
상속
class KimHouse(ChoHouse):lastName = "김"
suha = KimHouse("수하")
suha.setMoney(99999)
김수하의 지갑에 들어 있는 돈은 99999입니다.
'Programing > Python' 카테고리의 다른 글
모듈 (1) | 2012.05.17 |
---|---|
파이썬 5일차 - 1 (0) | 2012.05.14 |
파이썬 4일차 (0) | 2012.05.11 |
파이썬 3일차 (0) | 2012.05.09 |
파이썬 2일차 - 1 (0) | 2012.05.09 |