有趣但沒啥用的 import 用法
import 是 Python 導(dǎo)包的方式。
你知道 Python 中內(nèi)置了一些很有(wu)趣(liao)的包嗎?
Hello World
>>> import __hello__
Hello World!
Python之禪
>>> import this
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
反地心引力漫畫
在 cmd 窗口中導(dǎo)入antigravity
>>> import antigravity
就會自動打開一個網(wǎng)頁。
正負(fù)得負(fù),負(fù)負(fù)得正
從初中開始,我們就開始接觸了負(fù)數(shù)
,并且都知道了負(fù)負(fù)得正
的思想。
Python 作為一門高級語言,它的編寫符合人類的思維邏輯,包括 負(fù)負(fù)得正
。
>>> 5-3
2
>>> 5--3
8
>>> 5+-3
2
>>> 5++3
8
>>> 5---3
2
return不一定都是函數(shù)的終點(diǎn)
眾所周知,try…finally… 的用法是:不管try里面是正常執(zhí)行還是有報異常,最終都能保證finally能夠執(zhí)行。
同時我們又知道,一個函數(shù)里只要遇到 return 函數(shù)就會立馬結(jié)束。
那問題就來了,以上這兩種規(guī)則,如果同時存在,Python 解釋器會如何選擇?哪個優(yōu)先級更高?
寫個示例驗證一下,就明白啦
>>> def func():
... try:
... return 'try'
... finally:
... return 'finally'
...
>>> func()
'finally'
從輸出中,我們可以發(fā)現(xiàn):在try…finally…語句中,try中的 return 會被直接忽視(這里的 return 不是函數(shù)的終點(diǎn)),因為要保證 finally 能夠執(zhí)行。
如果 try 里的 return 真的是直接被忽視嗎?
我們都知道如果一個函數(shù)沒有 return,會隱式的返回 None,假設(shè) try 里的 return 真的是直接被忽視,那當(dāng)finally 下沒有顯式的 return 的時候,是不是會返回None呢?
還是寫個 示例來驗證一下:
>>> def func():
... try:
... return 'try'
... finally:
... print('finally')
...
>>>
>>> func()
finally
'try'
從結(jié)果來看,當(dāng) finally 下沒有 reutrn ,其實 try 里的 return 仍然還是有效的。
那結(jié)論就出來了,如果 finally 里有顯式的 return,那么這個 return 會直接覆蓋 try 里的 return,而如果 finally 里沒有 顯式的 return,那么 try 里的 return 仍然有效。
審核編輯:湯梓紅
-
函數(shù)
+關(guān)注
關(guān)注
3文章
4333瀏覽量
62684 -
python
+關(guān)注
關(guān)注
56文章
4797瀏覽量
84742
發(fā)布評論請先 登錄
相關(guān)推薦
評論