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

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

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-10 02:33:021041瀏覽

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中文網其他相關文章!

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