다음 시나리오를 고려하십시오. 변수 이름을 인수로 요구하는 함수가 있습니다. 해당 이름을 기반으로 일부 작업을 수행합니다. 함수 내에서 원래 변수 이름을 얻을 수 있는 방법이 있습니까?
이 질문에 대답하려면 호출 컨텍스트를 검색하고 코드 컨텍스트에서 변수 이름을 추출할 수 있는 검사 모듈을 활용하는 방법을 살펴보겠습니다. .
<code class="python">import inspect def foo(a, f, b): # Get the stack frame of the calling function frame = inspect.currentframe() # Move up one level to get the frame of the calling context frame = inspect.getouterframes(frame)[1] # Get the source code context of the calling context string = inspect.getframeinfo(frame[0]).code_context[0].strip() # Extract the argument names from the code context args = string[string.find('(') + 1:-1].split(',') names = [] for i in args: if i.find('=') != -1: # Handle keyword arguments names.append(i.split('=')[1].strip()) else: # Handle positional arguments names.append(i) print(names) def main(): e = 1 c = 2 foo(e, 1000, b = c) main()</code>
설명:
출력 예:
['e', '1000', 'c']
참고: 이 접근 방식에는 호출 스택을 검사하고 취약하고 오류가 발생하기 쉬운 소스 코드 컨텍스트입니다. 실용적인 사용을 권장하지 않으며 학문적, 오락적 목적으로만 고려하시기 바랍니다.
위 내용은 Python의 함수 인수에서 원래 변수 이름을 추출할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!