파이썬 함수의 코드 객체는 __code__
입니다.코드 객체에 대한 파이썬 함수 얻기
sys.settrace
추적 frame
에는 f_code
코드 개체가 있습니다.
함수 인 추적 프로그램에 대한 호출의 경우 함수 개체 (및 해당 __annotation__
멤버)를 어떻게 얻을 수 있습니까?
지금까지 시행 착오, 내가 가진 :
if hasattr(frame.f_globals.get(frame.f_code.co_name),"__annotations__"):
이 아닌 클래스 멤버 함수, 기능 작동하는 것 같다; 클래스 멤버 함수가 같은 이름의 최상위 함수와 혼동됩니다.
(. 파이썬 3.2.3 (분투)에 파이썬 3.3 inspect
모듈은 signature
기능을 가지고 있음을 볼 수있어,이 코드 개체에 대한 주석을 반환하거나 너무 함수 객체를 필요합니까?)
은'inspect.getframeinfo' 튜플의'function' 필드에 의해
__code__
를 교체해야 파이썬이 하나의 캐릭터가 아닌 함수 객체 것 같다 - 이 파이썬 3입니다. 그리고 gc 접근 방식은 여러 참조자를 위험에 빠뜨릴 수 있습니까? – Willgc.get_referrers (...)를 사용하여 끝났습니다. [0] – Will
func_code/__ code__이 목록 이해에 필요한 코드 개체인지 확인하기 위해 추가 할 수 있습니다. 여러 함수를 생성하면 여전히 실패합니다. 동일한 코드 객체 (예 : 장식 자와. 나는 각각에 대해 func_closure의 f_locals를 func_closure와 비교할 수 있다고 가정한다 ... –