는 파이썬이 변수 ID/기호를 캐릭터 라인 화하기 위해 모든 가능한 경우, 내가 궁금하네요 - 즉, 다음과 같이 동작하는 기능 :Python에서 변수 id/기호를 문자열로 변환하는 방법은 무엇입니까?
>>> symbol = 'whatever'
>>> symbol_name(symbol)
'symbol'
을 지금, 그것을 쉽게 할 수있다 함수 또는 클래스 (이 개체에 대한 직접 참조 인 경우) :
>>> def fn(): pass
>>> fn.func_name
'fn'
하지만 모든 경우에, 도 간접 객체 참조에서 작동하는 일반적인 방법을 찾고 있어요. 나는 어쨌든 id (var)를 사용했지만 아직 행운을 생각하지 못했습니다.
어떤 방법이 있습니까?
[파이썬, 원본 고유 이름을 인쇄 할 수 있습니까?] (http://stackoverflow.com/questions/544919/python-can-i-print-original-var-name) – Anycorn
내가보고있어 Python26/Python/ceval.c의 NameError의 실제 소스 코드는 분명히 NameError가 심볼 이름을 올바르게 가져옵니다. (아래에서 언급했듯이, symbol_name (non_existent)는 "NameError : name 'non_existent'not defined"메시지와 함께 traceback을 생성합니다.) PyTuple_GetItem (그리고 PyDict_GetItem)은 원하는 기호 이름을 생성하지만 랩핑하는 인터페이스를 찾지 못했습니다 그것을 사용자에게 보여줍니다. 누군가가 그렇지 않으면 나를 증명하지 않으면, 그것은 불가능할 수도 있습니다. 그러나 클래스의 인스턴스 변수에 대해서는 __getattribute__를 덮어 쓰고 NameError를 grepping하는 것이 가능합니다. – OTZ