1) 클래스

함수 설명 예제 (X, Y는 인스턴스)
__init__ 생성자(Constructor), 인스턴스가 만들어 질 때 호출  
__del__ 소멸자(Destructor) 인스턴스가 사라질 때 호출

 

__add__ 연산자 "+" X + Y
__or__ 연산자 "|" X | Y
__repr__ print 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
Posted by 부우산사나이
:
2) 입력과 출력

 

 

def input_int():
    return int( input("숫자 입력하세요") )

a = input_int()
b = input_int()
jaeho(a,b)

 

input()

이 함수를 사용하면 입력 받을 수 있는 창이 뜬다.

대신 모든 입력 받은건 문자형으로 받는다.

그래서 형변환이 필수!!!!!

 

 

 

 

3) 파일 읽고 쓰기

 

 

f = open("jaeho.txt",'w')
data=""
for i in range(1,11):
    data = data + "%d 번 째 줄입니다\n" % i

f.write(data)
f.close()

파일열기모드 설명
r 읽기모드 - 파일을 읽기만 할 때 사용
w 쓰기모드 - 파일에 쓸 때 사용
a 추가모드 - 파일의 마지막에 새로운 내용을 추가 시킬 때 사용

 

 

 

readline ()

 한줄 씩 읽기

readlines()

 모든 라인 다 읽기

 read()

 파일을 전부 읽은 문자열을 돌려준다.

 tell()

 현재까지 읽은 위치(포인터)를 가르켜 준다.

seek()

 읽을 위치 (포인터)를 다시 지정 해준다.

 

tell 과 seek
>>> f = open("test.txt", 'w')
>>> f.write("this is one line\n")
>>> f.write("two line\n")
>>> f.write("three line\n")
>>> f.close()
우선 test.txt라는 파일을 쓰기 모드로 열어서 파일 객체를 생성한후
write함수를 이용하여 총 세 개의 줄을 test.txt파일에 입력하고 파일 객체를 닫는다.

test.txt파일은 다음과 같을 것이다.
this is one line
two line
three line

다음의 예를 계속해서 따라해 보자.
>>> f = open("test.txt", 'r')
>>> f.tell()
0

처음에 파일을 읽기 모드로 열었고, 그 파일 포인터 값을 알기 위해서 tell을 호출하였다.
물론 파일의 맨 처음이기 때문에 0을 반환했다.
>>> f.readline()
'this is one line\n'
>>> f.tell()
17

다음에 한 줄을 읽는다. 그 다음의 파일 포인터는 그 줄의 바이트 수만큼 포인터가 증가한다.
따라서 다시 tell을 호출했을 때 17이 된 것이다.
>>> f.readline()
'two line\n'
>>> f.tell()
26

마찬가지로 다시 한 줄을 읽었더니 파일 포인터의 위치는 26이 되었다.
>>> f.seek(0)
>>> f.readline()
'this is one line\n'
>>>
파일 포인터의 값을 변화시키기 위해서 seek를 사용하였다.
f.seek(0)는 파일 포인터의 위치를 0으로 하라는 것이다.
따라서 다음에 다시 한 줄을 읽었을 때는 그 파일의 맨 처음 줄을 읽게 되는 것이다.

 

 

 

readline()

 

f = open("새파일.txt", 'r')

while 1:
    line
= f.readline()
   
if not line: break
   
print line


f
.close()

 

 

 

 

readlines()

 

f = open("새파일.txt", 'r')
lines
= f.readlines()


for line in lines:
   
print line

f
.close()

 

 

 

read()

 

f = open("새파일.txt", 'r')
data
= f.read()

print data

f
.close()

'Programing > Python' 카테고리의 다른 글

모듈  (1) 2012.05.17
파이썬 5일차 - 2  (0) 2012.05.14
파이썬 4일차  (0) 2012.05.11
파이썬 3일차  (0) 2012.05.09
파이썬 2일차 - 1  (0) 2012.05.09
Posted by 부우산사나이
:

완전히 까먹고 있었네

 

학원 졸작이였던 루파루파 온라인~~

 

3주동안 정말 매일 밤을 세워가면서 완성 시켰는데

 

그때 정말 의욕 만땅 하루하루 개발하는게 너무 재미있었다.

 

그래서 학원 졸작 프로젝트 발표회에서 1등 해서 상금 200만원도 탔고

 

인디게임 공모전에 출품해서 장려상까지 탄 작품

 

노력한만큼 결과가 있어서 뿌듯했었지.

 

앞으로 계속 이 녀석 개발했던 기분으로 최선을 다하자~~ 아자아자

 

 

'게임개발이야기' 카테고리의 다른 글

오브젝트 업데이트 최적화  (0) 2012.05.11
Posted by 부우산사나이
: