|
已發(fā)“坑”列表:Python函數(shù)默認值參數(shù)的2個坑,Python編程中一定要注意的那些“坑”(一),Python編程中一定要注意的那些“坑”(二),Python中一定要注意的那些“坑”(三),Python編程一定要注意的那些“坑”(四),Python編程一定要注意的那些“坑”(五),Python編程一定要注意的那些“坑”(六) 今天介紹一下函數(shù)返回值的“坑”,其實嚴格來說這并不是坑,而是程序員不熟悉或者不注意函數(shù)或方法的工作機制和返回值造成的。 在Python中,如果函數(shù)或方法中沒有return語句、有return語句但是沒有執(zhí)行到、有return語句也執(zhí)行到了但是該return語句沒有返回任何值,那么Python都會認為這個函數(shù)或方法返回的空值None。 看下面的代碼: from random import shuffle lst = list(range(20)) 這段代碼無法運行,并拋出下面的異常: Traceback (most recent call last): 原因在于,標準庫random的shuffle()隨機打亂列表中元素順序的操作屬于原地操作,也就是說直接對列表進行操作,并沒有返回值,或者說返回控制None,而None是沒有index()方法。 上面的代碼對shuffle()函數(shù)的用法是錯誤的,正確的應(yīng)該是下面的樣子: from random import shuffle lst = list(range(20)) 在使用內(nèi)置函數(shù)、標準庫函數(shù)、擴展庫函數(shù)或?qū)ο蠓椒〞r,一定要注意它們的用法,是原地操作還是返回處理后的新對象,這決定了該函數(shù)或方法的用法。 |
|
|