精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Python 為什么沒有 void 關鍵字?

開發 后端
void 是編程語言中很常見的關鍵字之一,從字面上理解,它是“空的、空集、空白”的意思,最常用于表示函數的一種返回值類型。

 void 是編程語言中很常見的關鍵字之一,從字面上理解,它是“空的、空集、空白”的意思,最常用于表示函數的一種返回值類型。

[[338888]]

維基百科上有一個定義:

The void type, in several programming languages derived from C and Algol68, is the type for the result of a function that returns normally, but does not provide a result value to its caller.

在 C、Algol68 及它們所派生的幾種編程語言中,void 類型是函數正常返回的一種類型,但是不會給調用者返回一個值。

簡單來說,void 是一種類型(type),但是沒有具體的值(value)。

這到底是什么意思呢?

以 Python 的幾種常見類型為例,我們可以從對比中看出規律:int 是一種表示整數的類型,它有無限個可能的整數值;bool 是一種布爾類型,它有兩個可能的值(True 和 False);NoneType 是一種表示 None 的類型,它只有一個值(None)。

至于 void,它是一種更為抽象的特殊類型,但是不包含任何值。

介紹完概念上的含義,我們就可以進入正題了。標題中的問題可以進一步分解成兩個:

  • 其它語言為什么要使用 void 關鍵字?
  • Python 為什么不設計出 void 關鍵字?

對于第一個問題,我們以 C/C++ 為例,先看看 void 的兩種使用場景(PS:此處只考慮函數的用法,不考慮指針的用法,因為 Python 沒有指針):

 

當 void 用在函數的參數位置時,它表示該函數不需要傳參。

最初 C 語言的f() 表示參數數量不確定,為了另外表達“不需要參數”的語義,所以引入f(void) 作為限定。后來的語言(包括 Python)基本不在參數中使用 void,而是直接用f() 表示不需傳參。C++ 為了兼容 C,所以才同時支持這兩種語法。

當 void 用在函數前作修飾時,它表示該函數沒有返回值。

在 C 語言中,若不聲明返回類型,則f() 函數在編譯后會返回整型的值。為了避免混亂,當不需要返回值時,就使用void f() 來作限定。

同時,更主要的是,它還起到了占位符的作用,表明一個函數的類型是已知的,這對代碼可讀性和編譯都有所幫助。

void 作為函數的空返回值類型,這種用法在 C++/Java 中也被繼承了。另外,在 Javascript 中也有 void 的身影,只不過它成了一種操作符,起到了完全不同的作用,此處不表。

但是,Python 從頭到尾都沒有 void 關鍵字。

為什么會這樣?難道是因為在 Python 中不存在其它語言所面對的問題么?還是說,Python 中有自己的一套解決方案?

仍以跟函數相關的兩種用法為例作分析吧。

在表示函數不需傳參時,f(void)這種寫法根本就是多余的,所以 Python 使用了最簡單明了的無參式寫法f()。

至于返回值類型的用法,在我們定義出一個函數時,例如最簡單的def func():pass ,為了讓它的調用結果func() 是一個合法的對象,那它必須具有一個有效的類型(type)。

這應該是以類型為基的編程語言都會遇到的共性問題,Python 也不例外。

這個時候,如果函數本身沒有顯式地 return 出一個對象的話,就有兩種可能的解決辦法:

  • 方法一,即聲明該函數為 void 類型,像 C 和其它語言所做的那樣,只要能通過類型檢查即可
  • 方法二,則是 Python 所用的方法,即令解釋器隱式地返回一個 None 對象,也就是令函數默認得到一個 NoneType 類型,再用于類型檢查(PS:Javascript 也類似,只不過它默認返回的是 undefined,它不是一個對象,而是一種表示“未定義”的類型,類似于 void)

簡單而言,Python 的設計思路是直接復用已有的 NoneType 類型,并讓解釋器來填補缺失掉的函數類型。

關于 Python 解釋器的這個隱式填補過程,我已在上一篇《Python 函數為什么會默認返回 None?》文章詳細分析過,感興趣的同學可去查閱。

這樣做的好處至少有兩點:一是沒有引入新的 void 類型和關鍵字;二是不需要程序員在函數前聲明返回類型,這就跟有顯式返回值的寫法保持了一致。

試想一下,如果 Python 不讓函數默認有返回值的話,就可能要寫成 void def func():... 這樣的形式,那它就變成了函數定義時的一種特例。與另一種特例函數相比,即異步函數asyc def func():... ,就可能引起混亂。

總體而言,Python 似乎認為 void 空類型不是那么有存在的必要,似乎 NoneType 類型就足夠了,而當缺少返回值時,讓解釋器統一注入是極為方便的,因此才出現了我們看到的現狀。

至此,文章標題的問題算是圓滿回答了。

最后,讓我們開始進入 ending 吧:本文明面上是以“Python 為什么沒有 void 關鍵字”為切入點,然而,它實際上瞄準的卻是“Python 為什么需要返回 None”的問題。

《Python 函數為什么會默認返回 None?》這篇文章中,我介紹了 Python 中函數默認返回 None 的機制,它是屬于“how can”的內容。但是為什么要默認返回 None 呢?這則是屬于“why need”或者“why should”的問題,而它需要從 void 關鍵字的缺失開始談起……

那么,為什么 Python 沒有 void 關鍵字呢?請往上翻,重新閱讀本文……

本文屬于“Python為什么”系列(Python貓出品),該系列主要關注 Python 的語法、設計和發展等話題,以一個個“為什么”式的問題為切入點,試著展現 Python 的迷人魅力。所有文章將會歸檔在 Github 上,項目地址:https://github.com/chinesehuazhou/python-whydo

責任編輯:華軒 來源: Python貓
相關推薦

2019-08-28 16:38:49

finalJava編程語言

2018-04-20 15:56:09

Pythonglobal關鍵字

2013-01-30 10:12:14

Pythonyield

2022-05-06 08:32:40

Pythonwith代碼

2025-07-22 01:55:00

2009-08-21 14:58:56

C# this關鍵字

2009-09-02 09:24:03

C# this關鍵字

2022-01-04 16:35:42

C++Protected關鍵字

2012-03-01 12:50:03

Java

2009-09-17 09:30:00

Linq LET關鍵字

2024-03-15 15:12:27

關鍵字底層代碼

2009-08-21 14:47:59

C# base關鍵字

2009-08-26 15:16:29

C# lock關鍵字

2019-12-20 15:19:41

Synchroinze線程安全

2011-06-14 13:26:27

volatile

2009-12-17 13:57:15

Ruby關鍵字

2009-08-06 17:52:23

C#增加that關鍵字

2009-08-13 17:44:34

C# using關鍵字

2021-08-06 07:51:47

關鍵字int函數

2022-01-10 18:11:42

C語言應用技巧
點贊
收藏

51CTO技術棧公眾號

青青久久av北条麻妃黑人| 欧美成人艳星乳罩| 午夜精品视频在线观看一区二区| 国产精品第6页| 91偷拍一区二区三区精品| 777色狠狠一区二区三区| 欧美国产视频一区| 日本一区二区三区在线观看视频| 日韩精品电影一区亚洲| 久久精品成人欧美大片古装| 91成人在线观看喷潮蘑菇| 久久青草伊人| 亚洲欧美影音先锋| 国外成人在线视频网站| 手机av免费观看| 一区二区在线影院| 日韩国产精品亚洲а∨天堂免| 亚洲精品怡红院| 日韩电影免费观看| 国产色91在线| 丁香婷婷久久久综合精品国产| 超碰超碰超碰超碰| 欧美韩国一区| 一区二区福利视频| 久久精品无码专区| 久久精品资源| 欧美性开放视频| 99热一区二区三区| 韩国中文免费在线视频| 国产精品99久久久久久有的能看| 日韩av成人在线| 国产精品丝袜一区二区| 蜜臀av免费一区二区三区| 日韩一区二区三区在线观看| 日本成人在线免费视频| 国产网红女主播精品视频| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 性色av免费观看| 婷婷精品进入| 亚洲人成伊人成综合网久久久| 日本精品一二三| 亚洲一区二区三区久久久| 欧美三级xxx| 日韩国产成人无码av毛片| 三级外国片在线观看视频| 2020国产精品| 久久久人人爽| 天天综合在线视频| 国产成人精品www牛牛影视| 国产这里只有精品| 黄色一区二区视频| 日韩中文字幕91| 2018日韩中文字幕| 日本在线视频中文字幕| 午夜电影亚洲| 欧美精品在线观看| 麻豆明星ai换脸视频| 日韩欧美综合| 日韩在线观看成人| 91ts人妖另类精品系列| 久久精品高清| 深夜福利91大全| 久久久久久久久福利| 欧美日韩123| 国产一区二区免费| 亚洲精品成人av久久| 国产伦一区二区三区| 亚洲人成网站免费播放| 日韩在线免费观看av| 妖精视频一区二区三区| 精品一区二区三区三区| 亚洲第一成人网站| 菠萝蜜一区二区| 最新的欧美黄色| 91香蕉一区二区三区在线观看| 天天影视欧美综合在线观看| 久久天堂av综合合色| 暗呦丨小u女国产精品| 欧美先锋影音| 欧美激情一区二区三区久久久 | 天天射综合网视频| 欧美成人在线免费视频| 精品在线视频免费| 国产精品久久久久久模特 | 艳母动漫在线观看| 久草在线视频福利| 狠狠躁夜夜躁人人躁婷婷91| 人人爽人人av| 欧美在线视频免费| 亚洲综合五月天婷婷丁香| 国产精品自在在线| 国产精品国模大尺度私拍| 午夜成人免费影院| 中文字幕乱码日本亚洲一区二区| 一区二区三区三区在线| 丝袜在线观看| 色女孩综合影院| 日韩高清在线一区二区| 精品国产一区二区三区不卡蜜臂 | 欧美精品三区| 欧美在线一级视频| 国产精品毛片久久久久久久av| 国产成人精品免费| 日韩av图片| 亚洲综合图区| 色综合天天综合在线视频| 超碰超碰在线观看| 成人福利一区| 中文欧美在线视频| 国产亚洲小视频| 午夜在线精品偷拍| 亚洲一区二区三区乱码aⅴ| 偷拍精品一区二区三区| 国产精品毛片无遮挡高清| 男女日批视频在线观看| 成人亚洲网站| aa级大片免费在线观看| 成人毛片在线观看| 色播亚洲婷婷| 国产白丝在线观看| 欧美亚一区二区| 亚洲欧洲日韩综合| 日本久久一二三四| 午夜欧美大片免费观看| 中文字幕一区2区3区| 成人午夜电影网站| 潘金莲一级淫片aaaaaa播放1| 亚洲同志男男gay1069网站| 欧美一级xxx| 99精品视频网| 精品国偷自产在线视频99| 国产一级二级三级| 久久精品国产一区二区| 精品国产乱码一区二区三区四区| 亚洲视频tv| 欧美日韩在线影院| 国产51自产区| 无需播放器亚洲| 日本一区二区在线免费播放| 亚洲精品久久久久久无码色欲四季| 国产精品久久久久久久久免费樱桃| 免费黄色福利视频| 第四色中文综合网| 色综合久综合久久综合久鬼88| 自拍偷拍色综合| 久久久久久久久伊人| 一二三四视频社区在线| 91久久精品无嫩草影院| 久久精品视频网站| 伊人22222| 久久精品免视看| 日本www在线播放| 久久香蕉精品香蕉| 国内精品久久久久久久| 亚洲精品一区二区三区四区| 悠悠色在线精品| 精品国产午夜福利在线观看| 久久精品国产亚洲AV无码男同| 蜜臀av性久久久久蜜臀av麻豆| 欧美黑人xxxxx| 999精品网| 精品sm捆绑视频| 精品无码久久久久久久久| 国产精品资源站在线| 国产四区在线观看| 免费观看亚洲天堂| 久久国产精品电影| 国内老熟妇对白hdxxxx| 亚洲天堂精品在线观看| 国内精品国产三级国产aⅴ久| 亚洲一区二区三区| 亚洲精品欧美一区二区三区| 少妇视频在线| 精品国产露脸精彩对白| 久久狠狠高潮亚洲精品| 91视频91自| 亚洲国产精品久久久久爰色欲| 在线观看欧美理论a影院| 国产成人午夜视频网址| 啊v在线视频| 欧美一区二区观看视频| 久久久精品人妻一区二区三区四| www.亚洲在线| 久久久国产欧美| 永久91嫩草亚洲精品人人| 国产精品久久精品国产 | 亚洲精品不卡在线观看| 欧美富婆性猛交| 国产又爽又黄网站亚洲视频123| 欧美性生交大片免费| 亚洲精品国产精品国自| 国产一区二区91| 奇米精品一区二区三区| 欧美一区二区性| 亚洲一区二区三区xxx视频| 免费高潮视频95在线观看网站| 一区二区三区视频免费| 精品人妻av一区二区三区| 欧美午夜影院在线视频| 小向美奈子av| 91亚洲国产成人精品一区二区三| 成人免费在线观看视频网站| 欧美精品91| 日本精品一区| 91国内精品| 国产精品免费一区二区三区都可以| 羞羞视频在线观看不卡| 亚洲美女精品成人在线视频| 进去里视频在线观看| 亚洲曰韩产成在线| 2017亚洲天堂| 91麻豆高清视频| av在线免费观看不卡| 日韩专区一卡二卡| 男的插女的下面视频| 国产精品麻豆久久| 欧美日韩精品不卡| 北条麻妃一区二区三区在线| 国产日韩欧美成人| 自拍在线观看| 欧美日韩高清在线观看| 超碰国产在线观看| 精品亚洲男同gayvideo网站| 国产激情视频在线播放| 精品视频色一区| 日韩精品在线观看免费| 一区二区激情小说| 日韩一区二区不卡视频| 欧美激情一区二区三区| 91av在线免费| 成人黄色在线视频| 最好看的中文字幕| 久久se精品一区精品二区| 国产精品欧美激情在线观看| 一区二区自拍| 日韩精品福利片午夜免费观看| 成人综合专区| 日韩女优中文字幕| 少妇精品久久久| 久久99九九| 欧美偷窥清纯综合图区| 国产成人看片| 少妇精品在线| 亚洲一区二区三区四区视频| 日韩在线你懂得| 国产精品专区一| jizz欧美| 国产美女91呻吟求| 97精品国产综合久久久动漫日韩 | 欧洲亚洲精品久久久久| 国产精品成熟老女人| 国产精品扒开腿做爽爽爽视频软件| 海角国产乱辈乱精品视频| 亚洲精品一线| 欧美大片第1页| 久草在线视频福利| 午夜精品久久久99热福利| av免费不卡国产观看| 69精品小视频| 欧美aa视频| 欧洲永久精品大片ww免费漫画| 五月天av在线| 国产成人欧美在线观看| 国产亚洲精彩久久| 国产男女猛烈无遮挡91| 99视频有精品高清视频| 亚洲自拍偷拍第一页| 成人三级av在线| 国产一区二区三区色淫影院| 欧美精品中文| 日本一区二区三区视频免费看| 日韩中文在线电影| 一本色道久久88亚洲精品综合| 欧美精品色网| 18岁网站在线观看| 日韩影院精彩在线| gai在线观看免费高清| 国产精品自拍av| av2014天堂网| 国产日韩精品一区二区三区在线| 网爆门在线观看| 亚洲女厕所小便bbb| 久久视频免费看| 色婷婷av久久久久久久| 亚洲午夜激情视频| 精品精品国产高清a毛片牛牛| 青草久久伊人| xx视频.9999.com| heyzo高清中文字幕在线| 日本亚洲欧美成人| 韩国一区二区三区视频| 久久艹中文字幕| 成人一区不卡| av无码久久久久久不卡网站| 首页综合国产亚洲丝袜| 三区视频在线观看| 99re视频精品| 97在线观看免费高| 欧美日韩在线视频一区二区| 国产精选久久久| 日韩精品在线影院| 亚洲精品一线| 国产精品日韩在线播放| 在线综合色站| 水蜜桃一区二区三区| 亚洲一级特黄| 奇米视频7777| 久久久久青草大香线综合精品| 2025国产精品自拍| 色悠悠久久综合| 成人黄色在线观看视频| 中文字幕久久久av一区| ririsao久久精品一区| 国产欧美在线播放| 日韩美女毛片| 欧美一区二区视频在线播放| 蜜臀a∨国产成人精品| 亚洲欧美在线不卡| 亚洲精品高清在线观看| 91麻豆精品在线| 亚洲精品大尺度| 三级资源在线| 91久久精品美女| 成人av动漫在线观看| 欧美三级一级片| 成人综合婷婷国产精品久久| 成人做爰视频网站| 欧美色综合网站| 国外av在线| 极品美女一区二区三区| 国产手机免费视频| 国产主播一区二区三区| 亚洲一区二区自偷自拍| 精品女厕一区二区三区| www黄色网址| 久久资源免费视频| 深夜福利亚洲| 亚洲精品乱码视频| 日韩电影免费一区| 国产精品20p| 一本一本久久a久久精品综合麻豆| 黄色av小说在线观看| 欧美成人精品xxx| 免费观看亚洲视频大全| 天堂av在线中文| 国产乱对白刺激视频不卡| 天海翼在线视频| 91精品麻豆日日躁夜夜躁| 日本中文字幕在线观看| 国产精品网红直播| 久久精品国产99久久| 中文字幕亚洲乱码| 国产精品热久久久久夜色精品三区| 男人天堂视频网| 国产日韩精品在线观看| 国产视频网站在线| 欧美性视频网站| 久久综合社区| 成人午夜精品久久久久久久蜜臀| 国产精品18久久久久久久久| 欧美视频www| 欧美一区二区三区影视| 好了av在线| aa日韩免费精品视频一| 亚洲国产欧美国产综合一区| 国产a级黄色片| 欧美日韩午夜视频在线观看| 青青青草网站免费视频在线观看| 日本高清视频精品| 精品久久久亚洲| 五月天婷婷亚洲| 亚洲精品乱码久久久久久久久| 丰满岳乱妇国产精品一区| 97精品在线视频| 久久av电影| 波多野结衣免费观看| 亚洲国产成人av好男人在线观看| 五月婷婷六月丁香综合| 日韩av免费在线看| 久久精品国产99久久| 亚洲911精品成人18网站| 精品动漫一区二区三区| 精品成人一区二区三区免费视频| 国产精品自拍偷拍| 欧美日韩一区二区三区四区在线观看| 中文字幕a在线观看| 91成人在线免费观看| 精品欧美色视频网站在线观看| 成人动漫视频在线观看免费| 麻豆精品网站| 岛国毛片在线观看| 日韩精品中文字| 国产成人免费av一区二区午夜| 秋霞无码一区二区| 国产精品久久久久永久免费观看 | 国产亚洲精品美女久久久m| 美女精品在线观看| 最新一区二区三区| 亚洲精品少妇网址| 精品中文在线|