不喜歡就跳過的pass

2021-03-02 與C同行
學了python之後發現了一個比較有意思的東西,那就是pass語句,這個東西還是比較獨特的,從字面上理解,就是過,也可以理解為什麼都沒有,既然什麼都沒有為什麼還要有一個pass語句呢?想解釋這個問題,先看看比較嚴格的一個函數,有這樣一個函數:

[func_def] [return values] [func_name] (params){}

這個函數有返回值類型,有函數名,有參數,有函數體(在{}之中,這個函數體為空)。這個函數沒有使用pass語句,這裡只定義了一個函數,其他什麼事情都沒做。如果使用python寫一個函數,是這樣的:

def func_name(params): pass

這個函數跟前一個函數看起來大同小異,跟前一個函數做一下比較可以發現,前一個函數有{}界定符,後一個函數有:界定符,關鍵是{}裡可以什麼都沒有,但:後面必須得有語句,不然就會報錯。我們知道python通過:來確定一個結構,假想一下,有函數定義符def和:,這個結構應該是確定的了,但是奇怪的是:後面沒有其他語句這個函數就通不過語法檢查。我們再來看一些代碼:

大家猜一下這兩句代碼是什麼意思,比較懂的人就會說這是一個函數,調用時就會列印一個空行,仔細觀察一下,發現print()只空了一格,跟大家約定的四格不一致,假如def func():這行代碼之前還有很多代碼,然後碼者本人想空這個函數,但是他忘了加pass語句,然後空了一格繼續寫代碼,碼者本人的意圖是print()接著前面的代碼繼續,但是python理解的是print()這行代碼是func函數的函數體,這真的是南轅北轍了。如果加了pass語句,那麼就不會出現理解上的差異了,所以,pass語句最重要的作用就是加強代碼的可讀性,避免歧義。跟pass語句有著類似作用的是…(Ellipsis,中文省略號),既然可以使用pass或者…省略代碼,那麼也可以用它們來臨時佔用位子以便後期處理代碼。示例如下:

"""pass/...(Ellipsis)的使用方式

1)臨時佔用位置
2)忽略內容

最好使用pass和...,使用Ellipsis會出現提示但不影響結果

the statistics of this file:
lines(count) understand_level(h/m/l) classes(count) functions(count) fields(count)
000000000032 --l 00000000000000 0000000000000002 ~~~~~~~~~~~~~
"""

import time

__author__ = '與C同行'


# 忽略內容
def func(): pass


def func_o(): ...


# 臨時佔用位置
is_continue = False
if is_continue:
Ellipsis
else:
pass
print(f'當前時間:{time.ctime()}')
print('腳本執行完畢')

從本質上說,在一個腳本中,我們並非只能使用pass或者…來達到我們的要求,其實像None、[]這樣無意義的語句都可以起到和pass語句一樣的作用。

相關焦點

  • Pass是「通過」,「你被pass了」又為啥是被淘汰了?
    面試被pass掉了考試pass了pass的意思究竟是「通過」還是「沒通過」呢?我們來看看詞典中pass的釋義①to be successful in an exam, course, etc.②我們也經常見在玩遊戲的時候說pass,就表示這題跳過,過到下一題。
  • pass 是「通過」,可是「你被 pass 了」為什麼是「你被淘汰了」?
    我們也經常見在玩遊戲的時候說 pass,就表示這題跳過,過到下一題。pass on his proposal 拒絕他的提議;他的提議沒通過作不及物動詞的時候,pass的含義是不接受不想要,如果 pass 和something中間有介詞 on,我們就要理解為沒通過。
  • pass 是「通過」,「你被 pass 了」為啥是「你被淘汰了」?
    我們也經常見在玩遊戲的時候說 pass,就表示這題跳過,過到下一題。pass on something 放棄機會;不參加to refuse an opportunity or decide not to take part in somethingpass on his proposal 拒絕他的提議;他的提議沒通過作不及物動詞的時候,pass 的含義是不接受不想要,如果 pass 和 something
  • Python 為什麼要有 pass 語句?
    官方文檔 的介紹十分簡單,下面的三個例子可以讓我們快速地了解到如何使用它:簡單而言,pass 是一種空操作(null operation),解釋器執行到它的時候,除了檢查語法是否合法,什麼也不做就直接跳過。它跟 return、break、continue 和 yield 之類的非空操作相比,最大的區別是它不會改變程序的執行順序。
  • Python pass語句及其作用
    在實際開發中,有時候我們會先搭建起程序的整體邏輯結構,但是暫時不去實現某些細節,而是在這些地方加一些注釋,方面以後再添加代碼,請看下面的例子:
  • 「裂開」,pass到底是「通過」還是「沒通過」?
    最近,我的一位求職朋友,告訴我他被pass了,剛想安慰幾句,結果被告知下周就報導了。對此,我一臉蒙,不是被pass掉了嗎?pass 通過(考試,課程),及格pass on 不通過,跳過,去世例句:1. I passed the CET-6. 我通過了英語六級考試。2.
  • "pass" 到底是 「通過 」還是「沒通過」?
    作不及物動詞的時候,pass 的含義是不接受不想要,如果 pass 和 something 中間有介詞 on,我們就要理解為沒通過。pass on the party 就是不去聚會了,pass on his proposal 就表示他的提議沒有被通過。總結 pass something 通過pass on something 不通過;不接受還分不清的同學,一起來看兩個例句加深理解。
  • pass 是 「過」 還是 「不過」?五月花教你分辨小技巧...
    招聘的時候我們經常會聽到這個人pass了到底是通過還是不通過?這個 pass 的用法,有點神奇相信小夥伴們也會遇到很多疑惑今天來給大家理理清楚相信99%的人都會弄混pass 作及物動詞的時候,意思是「通過」,所以 pass something 就是說通過了。
  • 英語中18常見的PASS短語動詞
    Pass byMeaning: Travel past without stopping 不停地旅行Example: I noticed my wife pass by withMeaning: Travel past (something) without stopping; to ignore, to disregard 不停地走過(某物);忽視,忽視Example: I had the distinct worry that happiness would pass
  • 'I'll pass'真不是「我會通過」,說錯了連錦鯉都幫不了你.
    這個俚語是指說話者對這個提議、計劃、主意、機會不感興趣。答案裡提到了「some card games」,在一些卡牌遊戲裡,輪流出牌的時候,如果一個人不想出,沒牌出,就會說「I'll pass it.」- Hey Jack, it's your turn.Jack,該你出牌了。- Oh, I'll pass.
  • I'll pass 不是信心滿滿的」我會通過」!說錯可能斷送你的晉升之路!
    真為他的晉升捏把汗呀,因為pass這個單詞,他根本就沒學明白!我們印象裡,pass就是通過,但朗文字典裡,pass作不及物動詞,是有"否定,不接受"的意思,I'll pass也就是"跳過,略過,我不要",比直接說no,溫柔許多。
  • I『ll pass 不是信心滿滿的「我會通過」說錯可能斷送你的晉升之路
    我們印象裡,pass就是通過,但朗文字典裡,pass作不及物動詞,是有"否定,不接受"的意思,I'll pass也就是"跳過,略過,我不要",比直接說no,溫柔許多。- I think I'll pass. I am on a diet.我還是不了,我在節食呢。I'd like to pass this opportunity to someone else.
  • 「pass」到底是「通過」還是「沒通過」?這下終於明白了
    作不及物動詞的時候,pass 的含義是不接受、不想要,如果 pass 和 something 中間有介詞 on,我們就要理解為沒通過。pass on something 放棄機會;不參加to refuse an opportunity or decide not to take part in somethingpass on the party 不去聚會了pass on his proposal
  • 譯詞 | 「pass」到底是「通過」還是「沒通過」?這下終於明白了
    搞不清楚的同學快聽聽Yee君怎麼說吧。pass 既是一個及物動詞,也是一個不及物動詞。,pass 的含義是不接受、不想要,如果 pass 和 something 中間有介詞 on,我們就要理解為沒通過。
  • 期末複習之通信|Bandpass與Lowpass
    2. 接下來的一步就是平移了,這個絲毫沒有難度:通過這樣兩步,得到的信號就是bandpass信號S(f)的lowpass等效信號Sl(f)了。顯然,如果S(f)的正半軸部分不關於fc對稱,那麼得到的Sl(f)也是不關於Y軸對稱的,這說明,一個實BP信號,其對應的LP等效信號不一定是實的,對應的預包絡信號Z(f)一定不是實的。那麼如何從Lowpass等效信號得到原來的Bandpass信號呢?也是分兩步:1. 將lowpass信號右移f0得到預包絡信號Z(f)。
  • "pass" 到底是 「通過 」還是「沒通過」?這下終於明白了
    吉米老師前言:pass 常見的意思是通過,但是生活中, 老外也會用 pass 表達否定,那麼 pass 的意思究竟是通過還是沒通過呢?搞不清楚的同學快聽聽老師怎麼說吧。作不及物動詞的時候,pass 的含義是不接受不想要,如果 pass 和 something 中間有介詞 on,我們就要理解為沒通過。
  • I'll pass 是說「我會通過」嗎?說錯的後果很嚴重!
    - Oh, I'll pass.哦,我不要。其實中西在這方面是互通的,我們鬥地主的時候,是不是也會說「過過過」「下一個」,就是「這牌我不要,我不跟」的意思。pass作不及物動詞,有"否定,不接受"的意思,I'll pass也就是"跳過,略過,我不要",比直接說no要溫柔一些。例句:①- Would you like something to eat?您要吃點什麼嗎?
  • 你一定不知道pass是這個意思!
    不囉嗦,上乾貨!
  • 英語pass out 和 pass away 的區別
    英語中,pass out 和 pass away 是兩個較為相似的詞組,但是它們的意思並不相同,今天我們一起來學習一下。1. pass out:意為「昏倒」,指還沒有死亡。She was very tired and I felt like she might pass out or something like this.她很痛苦。她非常疲憊,我以為她可能會昏倒或什麼的。2. pass away:意為「死亡」,即去世的意思。與pass out 不同。
  • Pass是通過,但「你被pass了」為啥是淘汰?
    昨天卡卡在後臺收到一位同學的疑問:卡卡老師,Pass是通過,但「你被pass了」為啥有淘汰的意思?看到這個問題,卡卡也歪著腦袋想了三秒鐘,為啥pass是通過,而我們在日常生活中偶爾會說的「你被pass了」卻代表著「淘汰」?其實,問題的答案很簡單!