精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Python 函數(shù)默認(rèn)返回None的原因

如意 ? 來源:博學(xué)園 ? 作者:吾非魚 ? 2020-08-21 10:51 ? 次閱讀

Python 函數(shù)默認(rèn)返回None是什么原因?定義的函數(shù)沒有返回值,Python 解釋器就會(huì)強(qiáng)行地默認(rèn)給注入一段返回邏輯!實(shí)際上 Python 中有很多行為都是隱性的。

Python 有一項(xiàng)默認(rèn)的做法,很多編程語言都沒有,所有函數(shù)都會(huì)有一個(gè)返回值,不管有沒有寫 return 語句。

在正式開始之前,用pass語句 和 …對(duì)象 作為例子,看下 Python 的函數(shù)返回值:

Python 函數(shù)默認(rèn)返回None的原因

定義的兩個(gè)函數(shù)都沒有寫任何的 return 語句,但是在函數(shù)調(diào)用后,都能取到一個(gè)返回值。執(zhí)行效果跟直接寫 return 語句相比,是完全相同的:

Python 函數(shù)默認(rèn)返回None的原因

這 4 個(gè)例子屬于兩種類型:一種沒有寫 return,但是都有隱藏的 return 返回值;一種寫了 return,而且實(shí)際也有返回值。也就是說,后者在語義和行為上表現(xiàn)一致,前者雖然在語義上缺失,但是卻有實(shí)際的行為和結(jié)果;后者的行為是顯性的,前者卻是隱性的。

《Python之禪》中有一句“顯性勝于隱性(Explicit is better than implicit)”,但是,出于簡(jiǎn)潔和便利的考慮(Simple is better than complex),實(shí)際上 Python 中有很多行為都是隱性的,會(huì)把一些在語法層面的事交給解釋器去完成。

真值判斷 是隱性的行為,本文前兩個(gè)例子也是如此。

使用dis查看字節(jié)碼,就可以看到其背后的變化:

Python 函數(shù)默認(rèn)返回None的原因

在這個(gè)對(duì)比圖中,可以看出上述 4 個(gè)函數(shù)的解釋器指令一模一樣!

不管有沒有寫 return,它們都會(huì)執(zhí)行 return 的邏輯,而且默認(rèn)的返回值就是 None。

那么問題來了:Python 的函數(shù)為什么能默認(rèn)返回 None ?如何實(shí)現(xiàn)的?

答案就在解釋器中,當(dāng) CPython 解釋器執(zhí)行到函數(shù)的最后一個(gè)代碼塊時(shí),若發(fā)現(xiàn)沒有返回值,它就會(huì)主動(dòng)地加上一個(gè) Py_None 值返回:

Python 函數(shù)默認(rèn)返回None的原因

如果定義的函數(shù)沒有返回值,Python 解釋器就會(huì)(強(qiáng)行地)默認(rèn)給我們注入一段返回邏輯!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 源代碼
    +關(guān)注

    關(guān)注

    96

    文章

    2944

    瀏覽量

    66673
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4783

    瀏覽量

    84473
  • 解釋器
    +關(guān)注

    關(guān)注

    0

    文章

    103

    瀏覽量

    6499
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Python常用函數(shù)大全

    Python 世界里,有一些寶藏函數(shù)和模塊,它們可以讓你編程更輕松、代碼更高效。這篇文章將帶你一一認(rèn)識(shí)這些神器,讓你的開發(fā)生活瞬間輕松不少!
    的頭像 發(fā)表于 10-27 17:20 ?188次閱讀

    從TCP偵察回函數(shù)返回錯(cuò)誤代碼是什么意思?

    嗨,我想知道從TCP偵察回函數(shù)返回錯(cuò)誤代碼是什么意思。它有時(shí)會(huì)得到錯(cuò)誤代碼(-11)或錯(cuò)誤代碼(-9)。我想這就是我無法連接到TCP服務(wù)器的原因。非常感謝。
    發(fā)表于 07-11 07:49

    安裝依賴的Python軟件包時(shí)報(bào)錯(cuò)如何解決?

    ;=1.8,!=1.11.3; python_implementation != \'PyPy\'\"\" failed with error code 1 in None 系統(tǒng): win10 64位
    發(fā)表于 06-26 07:32

    STM32H7在USBH_Get_DevDesc()函數(shù)一直返回失敗的原因

    在USBH_Get_DevDesc()函數(shù)一直返回失敗,可以正常識(shí)別U盤的插入和移除,什么原因
    發(fā)表于 03-11 06:55

    函數(shù)發(fā)生器的作用,概念要點(diǎn)是什么

    概念。 理解迭代器和可迭代對(duì)象: 在深入探討函數(shù)生成器之前,我們需要先了解迭代器和可迭代對(duì)象的概念。在Python中,迭代是一種訪問集合元素的方式,無論集合的大小如何。迭代器是一個(gè)可以記住遍歷位置的對(duì)象。可迭代對(duì)象是可以返回
    的頭像 發(fā)表于 02-23 16:01 ?511次閱讀

    python中open函數(shù)的用法詳解

    python中open函數(shù)的用法詳解 Python中的open()函數(shù)用于打開文件。它接受文件名和模式作為參數(shù),并返回一個(gè)文件對(duì)象。文件對(duì)象
    的頭像 發(fā)表于 01-30 15:31 ?1970次閱讀

    round函數(shù)公式怎么輸入

    , ndigits) 參數(shù)說明: number:要進(jìn)行四舍五入的數(shù)字。 ndigits:指定保留的小數(shù)位數(shù)。這是一個(gè)可選參數(shù),默認(rèn)為0。 根據(jù)ndigits的不同取值,round函數(shù)的行為略有不同: 當(dāng)ndigits為0時(shí),round
    的頭像 發(fā)表于 01-15 17:27 ?903次閱讀

    split在python中的用法

    split在python中的用法 split()是Python中一個(gè)非常常用的字符串函數(shù),它能夠根據(jù)指定的分隔符將一個(gè)字符串分割成多個(gè)子字符串,并返回一個(gè)包含這些子字符串的列表。本文將
    的頭像 發(fā)表于 12-25 15:12 ?1973次閱讀

    if函數(shù)三個(gè)條件怎么填

    IF函數(shù)是Excel中最常用的函數(shù)之一,它根據(jù)一個(gè)邏輯條件的返回結(jié)果來決定應(yīng)該執(zhí)行哪一個(gè)動(dòng)作。在Excel中使用IF函數(shù)可以實(shí)現(xiàn)復(fù)雜的邏輯判斷,應(yīng)用范圍廣泛。本文將詳細(xì)解析IF
    的頭像 發(fā)表于 12-03 10:28 ?3454次閱讀

    vlookup函數(shù)顯示公式不顯示結(jié)果

    VLOOKUP函數(shù)是Excel中非常常用的一種函數(shù),用于在一個(gè)數(shù)據(jù)范圍內(nèi)查找某個(gè)值,并返回相應(yīng)的結(jié)果。但有時(shí)候,在使用VLOOKUP函數(shù)時(shí)會(huì)遇到公式不顯示結(jié)果的問題。本文將為您詳細(xì)解釋
    的頭像 發(fā)表于 12-01 11:22 ?2.2w次閱讀

    vlookup函數(shù)無效的原因

    vlookup 函數(shù)無效可能有以下幾個(gè)原因: 數(shù)據(jù)類型不匹配:vlookup 函數(shù)要求查找值和數(shù)據(jù)表中的對(duì)應(yīng)值必須為相同的數(shù)據(jù)類型。例如,如果查找值為文本類型,但數(shù)據(jù)表中的對(duì)應(yīng)值為數(shù)值類型
    的頭像 發(fā)表于 12-01 11:20 ?1.8w次閱讀

    XLOOKUP函數(shù)怎么使用

    XLOOKUP函數(shù)是Excel 365版本中新增的一項(xiàng)非常強(qiáng)大的查找和引用函數(shù)。它可以用于查找表格中的值,并返回相關(guān)信息。本文將介紹XLOOKUP函數(shù)的使用方法以及其在實(shí)際工作中的應(yīng)用
    的頭像 發(fā)表于 12-01 10:54 ?2168次閱讀

    if函數(shù)excel公式怎么用

    Excel中的IF函數(shù)是一種邏輯函數(shù),它可以根據(jù)特定的條件返回不同的結(jié)果。這個(gè)函數(shù)非常有用,可以在大量的情況下幫助我們進(jìn)行判斷和計(jì)算。在本文中,我將詳細(xì)介紹IF
    的頭像 發(fā)表于 11-30 17:05 ?1423次閱讀

    if函數(shù)如何嵌套計(jì)算公式

    和功能介紹 if函數(shù)是一種邏輯函數(shù),用于在滿足某個(gè)條件時(shí)返回一個(gè)值,否則返回另一個(gè)值。其基本語法如下: =IF(邏輯表達(dá)式, 結(jié)果1, 結(jié)果2) 其中,邏輯表達(dá)式用于判斷某個(gè)條件是否成
    的頭像 發(fā)表于 11-30 16:55 ?6596次閱讀

    input函數(shù)會(huì)將接收的數(shù)據(jù)以什么類型返回

    nput函數(shù)會(huì)將接收的數(shù)據(jù)以字符串類型返回。 input函數(shù)Python內(nèi)置函數(shù)之一,它用于從用戶處獲取輸入。當(dāng)程序運(yùn)行到input
    的頭像 發(fā)表于 11-30 10:09 ?3230次閱讀