日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python函数中的两个坑(面试经常有)

發布時間:2025/3/20 python 9 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python函数中的两个坑(面试经常有) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.函數內變量的作用域:

a=1 def fun():a=2 fun() print(a)

思考下這段程序的結果是什么,如果你的答案是2,那恭喜你,答錯了,結果是1,原因如下

a=1 def fun():a=2 #作用域是fun()函數,也就是說只能在fun中使用,fun結束,a也就消失了 fun() print(a) #a=1

那如果要引用開頭的a怎么辦:

a=1 def fun():golbal aa=2 #引用全局變量a fun() print(a) #a=2

2.參數的默認值是可變的

''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:579817333 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' def fun(a,b=[]):b.append(a)print(b) fun(1) fun(2)

這個結果什么是呢,[1],[2]?對的,你又入坑了,結果是[1],[1,2],為什么后一個會帶上第一個的結果呢,原來函數在定義的時候,參數就被實例化了,b就指向了[],由于列表是可變的,所以每次append后,
b的值都改變了,下次引用就會帶上上次的內容量,記住:默認參數必須指向不變對象!
如果要讓結果為[1],[2],那就該做如下修改:

def fun(a,b=None):if b==None:b=[]b.append(a)print(b) fun(1) fun(2)

以上兩個問題在實際中用到的雖然不多,但是面試會經常被問到,這也能看出python的功底吧,初學者經常不解,希望對大家有所幫助。

總結

以上是生活随笔為你收集整理的python函数中的两个坑(面试经常有)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。