考慮以下場景:您有一個函數需要變數名稱作為參數根據該名稱執行一些操作。有沒有辦法取得函數內的原始變數名稱?
為了回答這個問題,讓我們探索一種利用檢查模組的方法,該方法允許您檢索調用上下文並從程式碼上下文中提取變數名稱.
<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中文網其他相關文章!