首頁  >  文章  >  後端開發  >  Python中如何取得呼叫方法的名稱?

Python中如何取得呼叫方法的名稱?

Patricia Arquette
Patricia Arquette原創
2024-11-11 03:32:02428瀏覽

How to Get the Name of the Calling Method in Python?

如何在 Python 中的被呼叫方法中識別呼叫者方法的名稱

在處理複雜的 Python 程式碼時,取得呼叫方法的名稱會很有用。稱為特定方法。這可以幫助調試、分析和理解程式碼流。

實現此目的的一種方法是利用檢查模組,特別是 getframeinfo 和 getouterframes 函數。這些函數提供有關呼叫堆疊中當前幀和前一幀的資訊。

考慮以下範例:

def method1(self):
    ...
    a = A.method2()

def method2(self):
    ...

如果我們想取得method2 中的呼叫者(method1)的名稱在不修改method1的情況下,我們可以使用以下程式碼:

import inspect

def f1(): f2()
def f2():
    curframe = inspect.currentframe()
    calframe = inspect.getouterframes(curframe, 2)
    print('caller name:', calframe[1][3])

f1()

這段程式碼使用目前幀來取得外幀,它代表呼叫者方法。然後從外部框架的資訊中提取函數名稱。

需要注意的是,像這樣的內省技術主要用於調試和開發目的。不建議依賴它們來實現生產關鍵型功能。

以上是Python中如何取得呼叫方法的名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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