在函數傳回後在Python 中列印變數名稱
在Python 中,常見的是使用枚舉變數,例如和myEnum。某個名字 B.當這些變數從函數返回時,列印它們的名稱而不是它們的值會很有用。
簡短答案:不可能
簡短答案是它從函數返回後無法列印原始變數名稱。這是因為 Python 變數不是具有與其關聯的名稱的物件。
長答案:Hacky 解決方法
有一些解決方法可以讓您實現類似的目標,但一般不建議將這些方法用於生產程式碼。其中一種解決方法涉及使用回溯、檢查和其他模組來存取有關呼叫堆疊的資訊。這可以使用類似於以下的程式碼來實現:
<code class="python">import inspect import traceback def get_variable_name(value): # Get the current stack frame frame = inspect.currentframe() # Get the function that called this function function = frame.f_back.f_code # Get the line number of the call line_number = frame.f_back.f_lineno # Get the source code for that line source_line = function.co_lines[line_number - 1] # Find the variable name var_name = source_line.split("=")[0].strip() return var_name</code>
但是,請務必注意,此類解決方法可能很複雜且容易出錯,並且它們可能不適合所有情況。
替代解決方案
您可以考慮根據您的特定用例使用不同的方法,而不是嘗試列印變數名稱。例如,您可以維護一個字典,將值對應到對應的名稱,或使用日誌框架來記錄變數名稱及其值。
以上是Python 函數回傳後可以列印原始變數名稱嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!