在Python中,獲取函數名是一個基本而且常用的操作。其中,有一個built-in函數叫做__name__
,可以獲取函數的名稱。以下是一個例子:
def greet():
print("Hello world!")
print(greet.__name__)
# 輸出:greet
可以看到,.__name__
方法返回了這個函數的名稱,即greet
。
除了.__name__
方法,還可以使用inspect
模塊中的getframeinfo()
方法來獲取函數名。
import inspect
def greet():
print("Hello world!")
print(inspect.getframeinfo(inspect.currentframe()).function)
# 輸出:greet
這個方法首先使用了inspect.currentframe()
方法獲取當前代碼的幀棧信息。然后,.function
屬性返回了當前函數的名稱。
需要注意的是,使用.__name__
方法和inspect.getframeinfo()
方法獲取函數名的前提條件是這個函數必須要已經定義了。如果函數還沒有被定義,那就無法獲取它的名稱。