2011년 2월 14일 월요일

[Python] Auto-Machine(?) APIs

안타까운 제목이다. 뭐라고 지을 거리가 없어!

어쨌건 이 포스트의 내용은 코딩량을 줄여주는 기법...에 사용되는 몇 가지 함수를 메모하려는게 목적.

1. type() - What is this variable's type?

변수 타입을 확인하는 방법. 타입에 따라 특정하게 동작해야 되는 함수를 타입 별로 만드는 건 낭비지?

보통은 type(varname).__name__ 을 확인하는 방식으로 많이 쓰는 듯 하다.

참고로 None'NoneType'이라고 알려준다. 주의할 것.

2. eval() - Run! run! run! Evaluate string...

문자열을 실행한다! 이거 python interactive shell을 만들 수도 있다는 말이지. 굳이 만들 필요는 없지만 -_-;;

사용법은
eval('testfunc')(arg1, arg2) 
이런 식. 이걸 실행하면 testfunc(arg1, arg2)를 실행하는 것과 동일하다는 의미.

3. dir() - Where is here?! Get symbols on module.

특정 모듈 내의 심볼을 몽땅 확인할 수 있다.
import sys

for s in dir(sys):
  print s
예를 들어 특정 파일의 모든 함수를 한방에 실행하고 싶다면 dir()로 심볼 긁어내고 type()으로 함수인지 확인하고 eval()로 실행하면 된다는 의미가 된다.

4. yield()

잘 쓰진 않아서 모르겠지만 import할 때 좀 써먹었다.
yield(name, __import__('%s.%s' % (__name__, name), {}, {}, ['']))
자기 디렉토리 안에 있는 특정 모듈(name)을 import하는 코드던데. 뭐 자세한 건 reference문서 뒤져봐야지.

댓글 없음 :