변수 이름 인수 검색
변수를 함수에 인수로 전달할 때 원래 이름에 액세스하는 것이 바람직할 수 있습니다. 그러나 기본적으로 Python은 이에 대한 간단한 메커니즘을 제공하지 않습니다.
검사 모듈 해킹
변수 이름을 얻으려면 Python의 검사 모듈을 이용할 수 있습니다. 이 접근 방식은 예상치 못한 동작으로 이어질 수 있으므로 주의하는 것이 중요합니다.
다음 함수를 고려하세요.
<code class="python">import inspect def foo(a, f, b): frame = inspect.currentframe() frame = inspect.getouterframes(frame)[1] string = inspect.getframeinfo(frame[0]).code_context[0].strip() args = string[string.find('(') + 1:-1].split(',') names = [] for i in args: if i.find('=') != -1: names.append(i.split('=')[1].strip()) else: names.append(i) print(names) def main(): e = 1 c = 2 foo(e, 1000, b=c) main()</code>
이 메서드는 현재 프레임을 검사하고 외부 프레임에서 함수 호출 문자열을 검색합니다. . 그런 다음 기본 매개변수가 포함된 인수 목록을 추출합니다. 이 문자열을 구문 분석하면 출력에 표시된 대로 원래 변수 이름을 얻을 수 있습니다.
['e', '1000', 'c']
제한 사항 및 권장 사항
이를 사용하는 것이 중요합니다. 접근 방식은 실제로 권장되지 않습니다. 이는 신뢰할 수 없는 결과를 초래하고 불필요한 복잡성을 초래할 수 있습니다. 대신 원하는 기능을 달성하려면 변수 이름을 명시적으로 전달하거나 보다 적절한 디자인 패턴을 사용하는 것이 좋습니다.
위 내용은 Python 함수에 인수를 전달할 때 변수 이름을 어떻게 검색할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!