Python預設引數的陷阱

2022-09-13 02:51:13 字數 1106 閱讀 2399

一:內建函式

1.返回的是字典,字典裡面的鍵值對:全域性作用域的全部內容

print(globals())

2.返回的是字典,字典裡面的鍵值對:當前作用域的全部內容

print(locals())

二:預設引數的陷阱
1.預設引數:沒傳值,可變資料型別在記憶體中是同乙個

def func(name, alist=):

renturn alist

r1 = fun('whj')

print(r1)

>>>['whj']

r2 = fun('xhl')

print(r2)

>>>['whj','xhl']

2.預設引數:傳值

def func(a, alist=):

renturn alist

print(func(10))

>>>[10]

print(func(20, ))

>>>[20]

print(func(100))

>>>[10, 100]

3.預設引數執行順序

def func(a, alist=):

renturn alist

r1 = func(10)

r2 = func(20, )

r3 = func(100)

print(r1)

>>>[10, 100]

print(r2)

>>>[20]

print(r3)

>>>[10, 100]

三:區域性變數與全域性變數
1.在函式中,如果你定義了乙個變數,但是在定義這個變數之前對其引用了,

那麼直譯器認為是語法問題,應該在使用前定義

count = 1

def func():

print(count)

count = 3 ×

func()

2.global

在區域性作用域宣告乙個全域性變數

3.nonlocal

不允許操作全域性變數

內層函式對外層函式的區域性變數進行修改(巢狀函式)

Python預設引數陷阱問題

def fun a,l print l fun hhh fun mmmm fun xingkd python中的def語句在每次執行的時候都初始化乙個函式物件,這個函式物件就是我們要呼叫的函式,可以把它當成乙個一般的物件,只不過這個物件擁有乙個可執行的方法和部分屬性,對於引數中提供了初始值的引數,由...

python 預設引數問題的陷阱

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

python 預設引數 Python預設引數有坑?

最近有小夥伴在面試中遇到了 關於函式預設引數的坑 的題目,少數夥伴對此問題理得不是太清楚,今天匯智妹請到匯智動力高階教師鄧老師為大家詳細講解一下,幫助不太清楚的小夥伴清晰的梳理一遍。鄧老師本次主要從以下三點來講解 什麼是預設引數?函式預設引數的坑是什麼?函式預設引數為什麼會有坑?一 什麼是預設引數 ...