」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在 Python 中從函數內部取得函數名稱?

如何在 Python 中從函數內部取得函數名稱?

發佈於2024-12-21
瀏覽:539

How to Get a Function\'s Name from Inside the Function in Python?

從函數內部存取函數名稱

在Python 中,從函數本身內部確定函數名稱在動態自省的情況下非常有用

inspect 模組提供了一個方便的機制來獲取有關正在運行的程式碼的資訊。使用inspect.stack(),我們可以存取表示目前呼叫堆疊的幀列表。

對於給定的函數,堆疊列表中的第一幀對應於當前函數,而第二幀表示其呼叫者。要存取函數名稱,我們可以使用inspect.stack()0來提取堆疊中第一幀的第三個元素。

下面有一個例子:

import inspect

def foo():
    print("my name is", inspect.stack()[0][3])

foo()

此代碼將列印:

my name is foo
````
最新教學 更多>
  • 如何使用 C++11 在 Windows 中將 Unicode UTF-8 檔案讀取為 Wstring?
    如何使用 C++11 在 Windows 中將 Unicode UTF-8 檔案讀取為 Wstring?
    在Windows 中將Unicode UTF-8 檔案讀入WStrings在Windows 程式設計領域,從檔案擷取Unicode (UTF-8) 資料的任務寬字元串(wstring) 可以透過C 11 標準提供的通用功能來完成。 利用std::codecvt_utf8 Facet此解決方案的關鍵在...
    程式設計 發佈於2024-12-21
  • 如何使用命令列匯出MySQL資料庫內容?
    如何使用命令列匯出MySQL資料庫內容?
    使用命令列匯出MySQL資料庫內容使用命令列匯出MySQL資料庫內容背景:使用 mysqldump 指令: mysqldump 指令專門用來匯出 MySQL 資料庫內容。使用方法如下:$ mysqldump -u [username] -p db_name > db_backup.sql匯出整...
    程式設計 發佈於2024-12-21
  • 如何增加MySQL中列的字元限制?
    如何增加MySQL中列的字元限制?
    修改MySQL表中的列大小最近,您在MySQL中建立了一個表,無意中將特定列的字元限制設定為300 ,而所需的限制應該是65,353。解決這個問題需要調整表的schema。 解決方案在於執行以下SQL語句:ALTER TABLE <table_name> MODIFY <col_n...
    程式設計 發佈於2024-12-21
  • 如何為特定 FastAPI 路由自訂錯誤回應?
    如何為特定 FastAPI 路由自訂錯誤回應?
    如何在 FastAPI 中自訂特定路由的錯誤回應在 FastAPI 中,引發 RequestValidationError 允許您傳送自訂錯誤回應。這對於需要滿足特定條件的端點非常有用,例如必需的標頭。 選項 1:覆寫預設例外處理程序此選項可讓您覆寫預設例外處理程序RequestValidation...
    程式設計 發佈於2024-12-21
  • 儘管程式碼有效,為什麼 POST 請求無法擷取 PHP 中的輸入?
    儘管程式碼有效,為什麼 POST 請求無法擷取 PHP 中的輸入?
    解決PHP 中的POST 請求故障在提供的程式碼片段中:action=''而非:action="<?php echo $_SERVER['PHP_SELF'];?>";?>"檢查$_POST陣列:表單提交後使用 var_dump 檢查 $_POST 陣列的內...
    程式設計 發佈於2024-12-21
  • 如何使用變數在 LESS 中動態建立屬性名稱?
    如何使用變數在 LESS 中動態建立屬性名稱?
    在LESS 中的屬性名稱中使用變數(動態屬性/屬性名稱插值)LESS 目前不支援動態插入屬性,儘管有關該主題的一些討論堆疊溢位。 解決方法#1:將動態產生的屬性注入到屬性值中This解決方法將動態建立的屬性注入到硬編碼的屬性值中: .vendors(@property, @value, @pre: ...
    程式設計 發佈於2024-12-21
  • 大批
    大批
    方法是可以在物件上呼叫的 fns 數組是對象,因此它們在 JS 中也有方法。 slice(begin):將陣列的一部分提取到新數組中,而不改變原始數組。 let arr = ['a','b','c','d','e']; // Usecase: Extract till index ...
    程式設計 發佈於2024-12-21
  • 如何理解和管理 Web 開發中的預設 CSS 樣式?
    如何理解和管理 Web 開發中的預設 CSS 樣式?
    HTML 元素的預設CSS 樣式:綜合指南HTML 元素的預設CSS 樣式:綜合指南瀏覽器經常將預設CSS 樣式應用於HTML 元素,導致元素外觀變更跨不同平台。了解這些預設樣式表對於一致且可預測的 Web 開發至關重要。 查找瀏覽器預設CSS每個瀏覽器都維護自己的預設CSS 樣式表:Firefox...
    程式設計 發佈於2024-12-21
  • LaravelWhereIn 與 GroupBy:如何解決 MySQL 的 1055 錯誤?
    LaravelWhereIn 與 GroupBy:如何解決 MySQL 的 1055 錯誤?
    Laravel:語法錯誤或存取衝突:使用WhereIn和GroupBy時出現1055錯誤對於特定行資料檢索,Laravel允許我們在同一查詢中同時使用WhereIn 和GroupBy。但是,這有時會導致「語法錯誤或存取衝突:1055 錯誤」。 錯誤原因此錯誤發生在以下情況:MySQL 設定中啟用了嚴...
    程式設計 發佈於2024-12-21
  • 如何取消註冊 net/http 套件中的處理程序?
    如何取消註冊 net/http 套件中的處理程序?
    在net/http中取消註冊處理程序在net/http中,處理程序可以使用http.Handle動態註冊到特定的URL模式功能。但是,預設的多工器不提供取消註冊處理程序的機制。 取消註冊處理程序的一種方法是建立一個擴充標準 http.ServeMux 類型的自訂多工器。此自訂多工器可以包含用於取消註...
    程式設計 發佈於2024-12-21
  • Go的別名型別轉換會建立副本嗎?
    Go的別名型別轉換會建立副本嗎?
    別名之間賦值會觸發Go中的複製嗎? Go允許使用別名定義自訂類型。人們擔心這些別名類型之間的轉換是否會導致副本或僅導致結構變更。 考慮以下範例:type MyString string var s = "very long string" var ms = MyString(s...
    程式設計 發佈於2024-12-21
  • 如何找到 C++ 向量中的最大值或最小值?
    如何找到 C++ 向量中的最大值或最小值?
    在C 語言中尋找向量中的最大值或最小值從C 語言中的向量取得最大值或最小值是一項常見的程式設計任務。讓我們探討如何實現此目的並解決與 max_element 函數相關的特定錯誤。 使用 max_element 庫中的 max_element 函數傳回一個指向的迭代器到給定範圍內的最大值。若要將其與向...
    程式設計 發佈於2024-12-21
  • 插入資料時如何修復「常規錯誤:2006 MySQL 伺服器已消失」?
    插入資料時如何修復「常規錯誤:2006 MySQL 伺服器已消失」?
    插入記錄時如何解決「一般錯誤:2006 MySQL 伺服器已消失」介紹:將資料插入MySQL 資料庫有時會導致錯誤「一般錯誤:2006 MySQL 伺服器已消失」。當與伺服器的連線遺失時會出現此錯誤,通常是由於 MySQL 配置中的兩個變數之一所致。 解決方案:解決此錯誤的關鍵是調整wait_tim...
    程式設計 發佈於2024-12-21
  • 如何在 PHP 中組合兩個關聯數組,同時保留唯一 ID 並處理重複名稱?
    如何在 PHP 中組合兩個關聯數組,同時保留唯一 ID 並處理重複名稱?
    在 PHP 中組合關聯數組在 PHP 中,將兩個關聯數組組合成一個數組是常見任務。考慮以下請求:問題描述:提供的代碼定義了兩個關聯數組,$array1 和 $array2。目標是建立一個新陣列 $array3,它合併兩個陣列中的所有鍵值對。 此外,提供的陣列具有唯一的 ID,而名稱可能重疊。要求是建...
    程式設計 發佈於2024-12-21
  • 在 Go 中使用 WebSocket 進行即時通信
    在 Go 中使用 WebSocket 進行即時通信
    构建需要实时更新的应用程序(例如聊天应用程序、实时通知或协作工具)需要比传统 HTTP 更快、更具交互性的通信方法。这就是 WebSockets 发挥作用的地方!今天,我们将探讨如何在 Go 中使用 WebSocket,以便您可以向应用程序添加实时功能。 在这篇文章中,我们将介绍: WebSocke...
    程式設計 發佈於2024-12-21

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3