Python預設引數陷阱問題

2021-08-28 07:55:12 字數 339 閱讀 6328

def fun(a,l = ):

print(l)

fun('hhh')

fun('mmmm')

fun('xingkd')

python中的def語句在每次執行的時候都初始化乙個函式物件,這個函式物件就是我們要呼叫的函式,可以把它當成乙個一般的物件,只不過這個物件擁有乙個可執行的方法和部分屬性,對於引數中提供了初始值的引數,由於python中的函式引數傳遞的是物件,也可以認為是傳位址,只有def的時候初始化一次,然後在呼叫者和被呼叫者中都是共享的,所以在 func.func_defaults中只能看到乙個預設引數,在該函式物件被初始化的時候就已經存在了。

python 預設引數問題的陷阱

python 裡面乙個常見的陷阱就是函式的預設引數問題。如下 def func mylist mylist.append 1 return mylist 以下的執行結果如下 print func print func print func print func a print func 結果如下 1...

Python預設引數的陷阱

一 內建函式1.返回的是字典,字典裡面的鍵值對 全域性作用域的全部內容 print globals 2.返回的是字典,字典裡面的鍵值對 當前作用域的全部內容 print locals 二 預設引數的陷阱1.預設引數 沒傳值,可變資料型別在記憶體中是同乙個 def func name,alist re...

python 預設引數問題

首先來看問題 def add end l return l t add end t end t add end t end end t add end 1 t 1,end t add end t end end end t add end 1 t 1,end t add end t end end ...