我發現蟒蛇一個有趣的一段代碼:爲什麼python會在`pass`後繼續評估代碼?
def x(cond):
if cond:
pass
print('Still running!')
x(True)
我希望這不打印任何東西,但它打印Still running!
。這裏發生了什麼?
我發現蟒蛇一個有趣的一段代碼:爲什麼python會在`pass`後繼續評估代碼?
def x(cond):
if cond:
pass
print('Still running!')
x(True)
我希望這不打印任何東西,但它打印Still running!
。這裏發生了什麼?
按照Python文檔:
pass
是一個空操作 - 在執行時,沒有任何反應。
來源 - pass
仍然會執行後https://docs.python.org/3.5/reference/simple_stmts.html#pass
因此,pass
沒有做任何事情,所有的語句。
思考這個的另一種方式是,pass
等同於任何虛擬聲明:
def x(cond):
if cond:
"dummy statement"
print('Still running!')
有趣的是,我認爲'pass'是一個關鍵字佔位符。 –
我可以看到這個名字有點混亂,但是那個文檔有幫助! – miki725
是的,但是因爲我認爲'pass'是一個關鍵詞,所以我沒有在文檔中查找;) –
通並不意味着「退出功能」,它只是意味着什麼都沒有。把它想象成一個佔位符,說你在那裏不做任何事情(例如,如果你還沒有實現)。 https://docs.python.org/3.5/tutorial/controlflow.html#pass-statements
如果你想退出該功能,您只需return
或return None
順便說其他有用的陳述break
退出最新環和continue
退出循環的當前迭代,並直接進入下一個。
是的,我知道所有這些,我只是看到了這個代碼,並不知道它做了什麼(我很少使用python)。 –
通常你有兩個使用pass的理由:你想在將來實現一些東西,所以你創建了一個函數並且將它留空,或者需要這個函數,因爲可能發生在你剛剛創建的對象上的操作,因爲你沒有用處。 – Mijamo
通過什麼都不做。當程序到達時,它說「好吧,跳過這個!」。
Pass可用於提前定義函數。例如,
def function_somebody_is_going_to_write_later():
pass
def function_I_am_going_to_write_later():
pass
這樣,你可以寫其他人以後可能工作在函數的文件,你仍然可以執行該文件現在。
http://stackoverflow.com/questions/13886168/how-to-use-the-pass-statement-in-python –
@Downvoters爲什麼?我知道'pass'函數是如何工作的(佔位符說'我需要一個實現!'),我只是不知道這是如何工作的。 –