예를 들어, 즉시 기능이 파일에 정의되지 않은 그러나이 만들어진 :
>>> globals()['f'] = lambda: 3
>>>
>>> f
<function <lambda> at 0x10f337cf8>
>>> f()
3
>>> import inspect
>>> inspect.getsource(f)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/inspect.py", line 701, in getsource
lines, lnum = getsourcelines(object)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/inspect.py", line 690, in getsourcelines
lines, lnum = findsource(object)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/inspect.py", line 538, in findsource
raise IOError('could not get source code')
IOError: could not get source code
함수를 작성하지만, 경우에 소스 코드를 검색 할 수없는 여러 가지 방법이 있습니다 (예 : 모듈, 파일 이름, 파일 위치 등) 함수는 동적으로 생성 된 함수로 간주 될 수 있습니다.
globals()['f'] = lambda: 3
globals()
호출이 글로벌 네임 스페이스에 추가되는 의미는 인터프리터가 실행되는 경우에있어 어디 인 : 호출시
다음 줄은 값 3을 반환 f
라는 함수를 만듭니다 .
텍스트의 스크린 샷을 게시하지 마십시오. –
감사합니다. 질문의 설명을 수정했습니다. – PytLab