首頁 > 後端開發 > Python教學 > Python中如何決定呼叫方法的名稱?

Python中如何決定呼叫方法的名稱?

Mary-Kate Olsen
發布: 2024-11-10 02:33:02
原創
1027 人瀏覽過

How Can I Determine the Name of the Calling Method in Python?

在Python中找出呼叫者的方法名稱

在物件導向程式設計中,方法通常可以呼叫相同或不同物件上的其他方法。在被呼叫方法需要有關其呼叫者的信息的情況下,獲取呼叫者的方法名稱可能很有價值。

識別問題

考慮以下 Python 程式碼:

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

def method2(self):
    ...
登入後複製

在這個例子中,我們有兩個方法,method1 和 method2。假設我們想要從 method2 本身內部取得該方法的呼叫者的名稱。具體來說,我們想要確定 method1 是呼叫者。

使用內省揭開解決方案

Python 提供了檢查模組,該模組提供內省功能。以下是我們如何利用它來實現我們的目標:

import inspect

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

def method2(self):
    frame = inspect.currentframe()
    outer_frame = inspect.getouterframes(frame, 2)
    print('caller name:', outer_frame[1][3])
登入後複製

透過呼叫inspect.getouterframes(frame, 2),我們取得代表呼叫堆疊的外部框架清單。此列表中的第二個框架對應於 method2 的呼叫者,在我們的例子中是 method1。每個幀元組中的第四個元素表示方法名稱,我們將其列印到控制台。

注意事項

雖然內省對於調試和開發很有用,但它並不是建議依賴它來實現生產關鍵型功能。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板