溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python為什么沒有函數重載

發布時間:2021-09-07 14:00:07 來源:億速云 閱讀:108 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關python為什么沒有函數重載,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

1、當我們定義多個同名函數時,后面的函數總是覆蓋前面的函數。

所以在一個命名空間里,每個函數名只會有一個注冊項。

2、當程序運行時,如果遇到另一個同名函數,會更新局部命名空間中的注冊項目。

從而消除兩個函數共存的可能性。

所以Python不支持函數重載。這是創建語言時的設計決策,但并不妨礙我們實現。

注意:這里說Python不支持函數重載,這意味著Python不使用語法糖。使用functools庫的singledispatch裝飾,Python還可以實現函數重載。這是原作者在文末注釋中特別提到的。

通過調用locals()和globals()函數,可以看到Python的命名空間是什么,分別返回局部和全球命名空間。

def area(radius):
  return 3.14 * radius ** 2
 
 
>>> locals()
{
  ...
  'area': <function area at 0x10476a440>,
  ...
}

定義一個函數后,再調用locals()函數,我們會看到它返回一個字典,包括定義在局部命名空間的所有變量。字典鍵是變量的名稱,值是變量的引用/值。

關于“python為什么沒有函數重載”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女