Python學習筆記(二十一):函數名重名


函數名重名:

在其他語言中,如果存在函數名相同,參數也相同,返回類型也相同的情況,會出現錯誤;但是在 python 中不會出錯,而是後定義的函數,會覆蓋掉先定義的函數;如下代碼:

# 定義兩個函數,名稱相同
def test():
    print("=== test1 ===")

def test():
    print("=== test2 ===")

# 調用函數
test()

輸出結果:

這是因爲:

第一次定義函數 test() 的時候,python 解析器會在內存中開闢一個空間,用來存儲第一塊函數體的內容,而 test 只是這一塊函數體的引用,即變量 test 指向這一塊函數體;

第二次再定義函數 test() 的時候,python 解析器又在內存中開闢了一個空間,用來存儲第二塊函數體的內存,此時,變量 test 不再指向第一塊函數體,而是指向了第二塊函數體,所以 test() 實際調用的是第二個函數;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章