首頁  >  文章  >  後端開發  >  將參數傳遞給 Python 函數時如何檢索變數名稱?

將參數傳遞給 Python 函數時如何檢索變數名稱?

Patricia Arquette
Patricia Arquette原創
2024-10-30 21:11:03271瀏覽

How can I retrieve variable names when passing arguments to a Python function?

擷取變數名稱參數

將變數作為參數傳遞給函數時,可能需要存取它們的原始名稱。然而,在預設情況下,Python 並沒有為此提供直接的機制。

破解Inspect 模組

要取得變數名稱,您可以利用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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn