오전에 매직메서드를 알아보았습니다. 오후에도 계속 진행을 하였습니다. 


========================================  5  ========================================


[ 14 : 02 ~ 14 : 49 ] 



매직메서드의 호출경우



__del__ : del Obj


__repr__: repr(Obj)


__bytes__ : bytes(Obj)


__format__ : format(Obj, spec) , 


__hash__ : hash(Obj)


__bool__ : 


__dir__ : 


__getattribute__ : 


__getitem___ : Obj[index] = value


__missing__ : Obj.get(key)


__delitem__ : del Obj[index]


__contains__ : Obj in Object2


__add__ : Obj + Obj2


__sub__ : Obj - Obj2


__mul__ : Obj * Obj2


__mod__ : Obj / Obj2


__divmod__ : 


__i..__

__iadd__: i+= Obj


__r..__  

__radd__ : Obj2 + Obj1        (역순으로 계산 인자2+인자1)


__neg__ : -Obj


__pos__ : +Obj


__abs__ : abs(Obj)


__invert__ : ~Obj


__complex__ : complex(Obj)


__int__


__float__


__round__ : round(Obj), round(Obj, digit)


__enter__ , __exit__ : with statement


__len__ : len(Obj)


__call__ : Obj()




파이썬 반복자


class Yrange:
def __init__(self):
self.i = 0

def __iter__(self):
return self

def __next__(self):
if self.i < 5:
i = self.i
self.i += 1
return i
else:
# 반복문이 그만 돌도록 발생시키는 예외! (하지만 for문에서는 예외로 인식 안함)
raise StopIteration()
y = Yrange()

for item in y:
print(item)

위의 StopIteration()는 next 안에서만 동작하도록 하면 됩니다.


파이썬 발생자 (Generator)


기본적으로는 방복자와 같은 형태의 동작과 같은 방식의 사용기법을 가진다고 합니다. 하지만 그 틱징이 몇가지 있습니다. 






========================================  6  ========================================


[ 15 : 02 ~ 15 : 49 ] 


지난 시간에 이어 발생자를 계속 학습하였습니다.


발생자(Generator)를 만들어 보는 작업을 해 보았습니다. 


발생자는 빠른 처리를 위해서 실시간 데이터 처리를 위해서도 사용하며, 메모리를 적게 사용하기 위해서도 사용을 합니다. 또한 각 요소에 대해서 바로바로 리턴을 해야하는 경우에도 사용을 한다고 하셨습니다.




파이썬 데코레이터


데코레이터는 함수나 클래스의 기능을 확장하려고 할 때 사용합니다.


데코레이터를 만들때는 함수안에 함수를 만듭니다. (중첩함수를 만듬)


데코레이터를 사용하는 예시로 성능 측정을 위해서 함수 코드의 처음과 끝에 시간을 찍어주는 경우를 들어주셨습니다. 자바의 AOP와 유사한 방식이라고 하셨습니다. 


데코레이터는 기본적으로 함수를 받습니다. 


데코레이터가 추가인자가 필요한 경우에는 또한번 중첩함수를 만들어서 사용을 할 수 있습니다.



수강생 질문으로 데코레이터를 이용하여 분기를 주는것도 가능하기는 하지만 목적이나 유지보수의 용이함등을 고려하면 데코레이터를 여러번 중첩해서 사용하는것은 권하지 않으셨습니다.






========================================  7  ========================================


[ 16 : 04 ~ 16 : 48 ] 





프로퍼티


함수를 객체의 속성값을 다루는 것 처럼 사용을 할 수도 있습니다. 그러 할 경우에는 몇가지 메서드를 선언해주어야 합니다.




모듈과 네임스페이스


 파이썬에서 가장 중요한 특징중의 하나가 모듈이라는 것입니다. 모듈은 네임스페이스를 가지고 네임스페이스랑 파이썬 프로그램에서 사용하는 모든 변수, 함수, 클래스의 이름이 담겨진 공간입니다.

 파이썬에서 모듈은 보통 파이썬 함수, 변수, 클래스를 관련있는 것 끼리 모은 텍스트 파일입니다. (*.py 파일 1개)


 

 



========================================  8  ========================================


[ 16 : 57 ~ 17 : 47 ] 



파이썬 패키지

 파이썬의 패키지는 자바의 폴더개념의 패키지와 유사합니다. 하지만 다른점은 파이썬 패키지는 반드시 __init__.py가 있어야 합니다. 지금 PyCharm으로 생성을 해 보면 파이썬 패키지를 새로 만들면 자동으로 __init__.py 만들어줍니다. 



tip 경로생성


import os

os.makedirs(경로 문자열)


패키지를 가져올 때 from절에 . 과 ..을 경로에 인자에 포함할 수 있으며 도스명령처럼 . 는 현재경로, ..은 상위(부모)경로입니다.



강의 교제 마지막에 있는 요약과 Test문제도 확인을 해 보았습니다.

+ Recent posts