# 현재 함수의 이름 얻기 def whoami(): import sys return sys._getframe(1).f_code.co_name # 현재 함수의 caller 이름 얻기 def callersname(): import sys return sys._getframe(2).f_code.co_name 출처 : Python Recipe 66062: Determining Current Function Name
ElementTree와 같은 패키지를 사용하여 XML를 파싱하는 경우, XML 엘리먼트의 짝이 안맞는 등, 유효하지 않은 XML 구성이 탐지되면 ExpatError가 뜨는데, try: # XML 연산 catch ExpatError, e: # do something 하면, NameError: global name 'ExpatError' is not defined라는 에러가 뜬다. 이를 해결하려면, ExpatError를 catch하는 py 파일의 앞에, scope을 맞춰서 from xml.parsers.expat import ExpatError 라고 넣어주자. 그러면, 문제 해결!! '' While you are using XML packages such as ElementTree, you might wan..
ㅁ Queue.Queue 1. push('a') : 6.39s 2. push('a') + pop() : 11.37s ㅁ collections.dequeue 1. append('a') : 0.13s 2. append('a') + popleft() : 0.27s ㅁ list 1. append('a') : 0.15s 2. append('a') + pop() : 0.40s Queue를 쓰려면, dequeue를 활용하는 것이 좋을 것 같다.
여러가지 단위 테스트 프로그램이 존재하나, 그 중, standard library로 포함되어 있는 pyUnit (unittest) 과 py.test를 비교하여 간략하게 비교한다. ㅁ 테스트를 위한 클래스 class A: def getA(self): return 'a' def getWrongA(self): return 'b' if __name__ == '__main__': aa = A() print aa.getA() * 위의 코드에서 보는 바와 같이, 테스트 메소드는 두 개(getA와 getWrongA)이다. * 각 메소드는 정상 상황('a'를 리턴할 것이라 예상하는 상황에서 실제로 'a'를 리턴)과 오류 상황('a'를 리턴할 것이라 예상하는 상황에서 실제로는 'a'가 아닌 다른 값을 리턴)을 나타낸다. ..
1. 현재 클래스의 메소드 이름 얻기 class Base 에 대해, Base.__dict__ 라고 하면, Base에 선언된 정보를 얻을 수 있으나, 이중, 메소드 이름만 추출하고 싶다면, from types import * def getMethodNames(): result = [] for attr, val in Base.__dict__.items(): if type(val) == FunctionType: result.append(attr) return result 과 같이 함으로써, method 이름을 추출할 수 있다. 2. 그러나, 이미 특정 class로부터 instance를 만든 경우에는 위의 방법을 그대로 사용할 수 없다. 즉, Base.getMethodNames()라고 하면 결과를 얻을 수 있지..
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.