小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Python編程一定要注意的那些“坑”(七)

 kieojk 2017-04-28

已發(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))
lst = shuffle(lst)
print(lst.index(5))

這段代碼無法運行,并拋出下面的異常:

Traceback (most recent call last):
  File 'C:\Python36\test.py', line 5, in
    print(lst.index(5))
AttributeError: 'NoneType' object has no attribute 'index'

原因在于,標準庫random的shuffle()隨機打亂列表中元素順序的操作屬于原地操作,也就是說直接對列表進行操作,并沒有返回值,或者說返回控制None,而None是沒有index()方法。

上面的代碼對shuffle()函數(shù)的用法是錯誤的,正確的應(yīng)該是下面的樣子:

from random import shuffle

lst = list(range(20))
shuffle(lst)
print(lst.index(5))

在使用內(nèi)置函數(shù)、標準庫函數(shù)、擴展庫函數(shù)或?qū)ο蠓椒〞r,一定要注意它們的用法,是原地操作還是返回處理后的新對象,這決定了該函數(shù)或方法的用法。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多