您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“Python函數定義實例代碼分析”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Python函數定義實例代碼分析”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
def extend_list(val, items=[]): items.append(val) return items list1 = extend_list(10) list2 = extend_list(123, []) list3 = extend_list('a') print(list1) print(list2) print(list3)
點評:Python函數在定義的時候,默認參數
items
的值就被計算出來了,即[]
。因為默認參數items
引用了對象[]
,每次調用該函數,如果對items
引用的列表進行了操作,下次調用時,默認參數還是引用之前的那個列表而不是重新賦值為[]
,所以列表中會有之前添加的元素。如果通過傳參的方式為items
重新賦值,那么items
將引用到新的列表對象,而不再引用默認的那個列表對象。這個題在面試中經常被問到,通常不建議使用容器類型的默認參數,像PyLint這樣的代碼檢查工具也會對這種代碼提出質疑和警告。
[10, 'a'] [123] [10, 'a']
Python是一種跨平臺的、具有解釋性、編譯性、互動性和面向對象的腳本語言,其最初的設計是用于編寫自動化腳本,隨著版本的不斷更新和新功能的添加,常用于用于開發獨立的項目和大型項目。
讀到這里,這篇“Python函數定義實例代碼分析”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。