最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python  中的pass語句語法詳析

 更新時間:2022年07月03日 11:24:33   作者:? 編程學習網(wǎng)?  ?  
這篇文章主要介紹了Python 中的pass語句語法詳析,pass是一種空操作(null operation),解釋器執(zhí)行到它的時候,除了檢查語法是否合法,什么也不做就直接跳過

前言

關于 Python 中的pass語句,它似乎很簡單(只有 4 個字母),即使是沒有任何編程經(jīng)驗的初學者也能很快地掌握它的用法。

簡單而言,pass 是一種空操作(null operation),解釋器執(zhí)行到它的時候,除了檢查語法是否合法,什么也不做就直接跳過。

它跟 return、break、continue 和 yield 之類的非空操作相比,最大的區(qū)別是它不會改變程序的執(zhí)行順序。它就像我們寫的注釋,除了占用一行代碼行,不會對所處的作用域產(chǎn)生任何影響。

但是,如果你有其它語言的基礎,你也許會好奇:為什么 Python 有這么獨特的 pass 語句,而別的語言卻沒有?

Python 這么設計,到底是出于什么原因呢?

是為了解決大部分編程語言都要面對的共性問題,還是因為它有自己的新發(fā)現(xiàn),所以創(chuàng)造出來一個新的特性?

換句話說:Python 為什么要有 pass 語句,它能解決什么問題(好處),如果沒有它,會導致什么問題(壞處)?

接下來,本文將從兩個維度展開分析。

1、對人:作為空間占位符

我把它看作是一種言簡意賅的注釋方式,等于是說“這里先預留位置,回頭再補上具體的代碼實現(xiàn)”。

比如在多層的 if-elif-else 結構中,我們可以先把判斷條件寫好,然后在對應的塊中寫上 pass,以后再慢慢完善。

比如上文中給出的例子,我們可以先寫好類/函數(shù)名及其入?yún)ⅲ缓筇^(pass)主體代碼,以后再慢慢填充。

pass 寫起來簡單,而且由于是關鍵字,IDE 會給出顯眼的顏色區(qū)分,所以就比我們寫上注釋內(nèi)容來得方便些。

pass 作為空間占位符,主要可以方便我們構思局部的代碼結構,有一定的輔助提醒作用。

但是,若作為一種注釋方式,它就顯得太單薄了,比不上寫“# todo: xxxx”,后者也會被 IDE 用顏色突顯,而且意思更明確。雖然寫起來簡單,但它也引入了一個看似多余的關鍵字 pass。

所以,從空間占位符的角度來看,pass 不是編程語言中必須的設計要素。

有了它,我們可以表達出“此處有東西,但暫時跳過”的語義,但如果沒有它,則可以用注釋內(nèi)容來替代。

2、對機器:為了語法完整性

對于前一條的用法,pass 出現(xiàn)在代碼中的位置在理論上是不受限的。

但是,我們最常使用 pass 時,基本是在冒號的下一行,而且在該層縮進的代碼塊中,只有這一條語句。(參見前文的 3 個例子,為了方便,我們僅以以空函數(shù)為例)

我們可以設想下,如果不寫它,會怎樣?

答案是會報縮進錯誤:IndentationError: expected an indented block

# 將函數(shù)體的 pass 去除,會報錯
def func():
func()

因為 Python 使用縮進來劃分代碼塊,而冒號標識著要出現(xiàn)新的縮進代碼塊,所以這個例子會報缺少縮進代碼塊。

如果我們用前文說的注釋來替代,看看會怎樣?

# 將函數(shù)體的 pass 換成注釋
def func():
    # todo:此處有東西,以后補上
func()

這樣寫,也會報錯:IndentationError: expected an indented block

原因是注釋并非有效的語法內(nèi)容,它會被 Python 解釋器忽略掉(ignore),不像 pass 語句那樣是“有效的語法內(nèi)容,但是跳過”。

也就是說,縮進代碼塊中必須包含有語法意義的內(nèi)容,下面的例子都是有效的:

def func():
    """這是一個字符串"""
def func2():
    123456

Python 在定義函數(shù)時,必須包含函數(shù)體,即同時包含聲明加定義兩種語義,不能像某些語言可以只使用聲明的語義,即寫成void test(); 。

但是,由于 Python 不使用花括號,它無法像某些語言那樣直接定義出空函數(shù),即寫成void test(){} 。

綜合以上的分析,Python 在定義空函數(shù)時,必須要有合法的函數(shù)體,因此設計出表示空操作的 pass 語句。它是為了補充語法的完整性,連同冒號,等效于其它語言中一對空的花括號。

從語法完整性的維度上看,它是必須的設計要素,如果沒有的話,也必須用類似的空語句或特殊符號來替代。

對人方面,pass 可以表示“暫時跳過”的含義,作為臨時的占位符,最終會被實際的代碼實現(xiàn)所替換;對機器方面,它則可以表示“直接跳過”,只為了補齊語法邏輯,并不會被其它代碼所替換。

其它語言沒有專門的一種語句或者符號來表示這種占位符(即語義有所欠缺),但是它們也不需要費心思專門設計一個關鍵字來補齊語法完整性(即語法完備)。

回到本文開頭的問題:Python 為什么要有 pass 語句,它能解決什么問題(好處),如果沒有它,會導致什么問題(壞處)?

Python 使用 pass 語句,是為了支持純粹空操作的代碼塊(空函數(shù)、空類、空的循環(huán)控制塊等等),有了它,還能額外表達出一種占位符的語義。

前者是對于機器而言的,必須要有,等效于其它語言中空花括號的作用;后者是對于人而言的,非必須的,可以用注釋來表達,但因為 Python 設計了這個語句,這種用法有時候還挺方便的。

到此這篇關于Python 中的 pass 語句語法詳析的文章就介紹到這了,更多相關Python pass 語句內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python報錯TypeError: object of type ‘generator‘ has no len ()的解決方法

    Python報錯TypeError: object of type ‘gener

    在Python開發(fā)的復雜世界中,報錯信息就像神秘的謎題,困擾著開發(fā)者和環(huán)境配置者,其中,TypeError: object of type ‘generator’ has no len()這個報錯,常常在不經(jīng)意間打亂我們的開發(fā)節(jié)奏,本文讓我們一起深入探究這個報錯問題,為Python開發(fā)之路掃除障礙
    2024-10-10
  • 用Python寫漏洞驗證腳本的代碼

    用Python寫漏洞驗證腳本的代碼

    這篇文章主要介紹了用Python寫漏洞驗證腳本,本文給大家分享完整實例代碼,代碼簡單易懂,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • pandas 對group進行聚合的例子

    pandas 對group進行聚合的例子

    今天小編就為大家分享一篇pandas 對group進行聚合的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python運算符的使用簡單介紹

    Python運算符的使用簡單介紹

    這篇文章主要介紹了Python運算符的使用簡單介紹,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下
    2022-08-08
  • python使用標準庫根據(jù)進程名如何獲取進程的pid詳解

    python使用標準庫根據(jù)進程名如何獲取進程的pid詳解

    Python有一套很有用的標準庫(standard library)。標準庫會隨著Python解釋器,一起安裝在你的電腦中的,所以下面這篇文章主要給大家介紹了關于python使用標準庫根據(jù)進程名如何獲取進程pid的相關資料,需要的朋友可以參考下。
    2017-10-10
  • python區(qū)塊鏈簡易版交易完善挖礦獎勵示例

    python區(qū)塊鏈簡易版交易完善挖礦獎勵示例

    這篇文章主要介紹了python區(qū)塊鏈簡易版交易完善挖礦獎勵示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • Python實現(xiàn)的矩陣轉置與矩陣相乘運算示例

    Python實現(xiàn)的矩陣轉置與矩陣相乘運算示例

    這篇文章主要介紹了Python實現(xiàn)的矩陣轉置與矩陣相乘運算,結合實例形式分析了Python針對矩陣進行轉置與相乘運算的相關實現(xiàn)技巧與操作注意事項,需要的朋友可以參考下
    2019-03-03
  • python使用Tesseract庫識別驗證

    python使用Tesseract庫識別驗證

    這篇文章主要為大家詳細介紹了python使用Tesseract庫識別驗證,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 利用Python批量循環(huán)讀取Excel的技巧分享

    利用Python批量循環(huán)讀取Excel的技巧分享

    這篇文章主要為大家詳細介紹了何用Python批量循環(huán)讀取Excel,文中的示例代碼講解詳細,對我們的學習或工作有一定的幫助,感興趣的可以了解一下
    2023-07-07
  • pip版本低導致Python離線包安裝失敗的問題解決

    pip版本低導致Python離線包安裝失敗的問題解決

    在使用Python進行開發(fā)時,安裝各種第三方庫是必不可少的,不過,有時候我們會遇到一些麻煩,尤其是當pip的版本較低時,下面我們來看看如何解決這一問題吧
    2025-03-03

最新評論

鄄城县| 洛阳市| 沂水县| 安义县| 凤山县| 聂荣县| 乌鲁木齐县| 乌鲁木齐市| 辽中县| 溧水县| 大港区| 洛隆县| 河源市| 绥化市| 绥德县| 志丹县| 剑阁县| 涟源市| 钦州市| 衡水市| 克什克腾旗| 吉木萨尔县| 安龙县| 海宁市| 万源市| 昌平区| 齐河县| 隆子县| 斗六市| 汝城县| 石泉县| 永年县| 东阳市| 临沂市| 甘泉县| 永登县| 怀柔区| 阿坝| 开封县| 德庆县| 湘潭市|