有趣但沒啥用的 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
就會(huì)自動(dòng)打開一個(gè)網(wǎng)頁。
正負(fù)得負(fù),負(fù)負(fù)得正
從初中開始,我們就開始接觸了負(fù)數(shù)
,并且都知道了負(fù)負(fù)得正
的思想。
Python 作為一門高級(jí)語言,它的編寫符合人類的思維邏輯,包括 負(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í)行還是有報(bào)異常,最終都能保證finally能夠執(zhí)行。
同時(shí)我們又知道,一個(gè)函數(shù)里只要遇到 return 函數(shù)就會(huì)立馬結(jié)束。
那問題就來了,以上這兩種規(guī)則,如果同時(shí)存在,Python 解釋器會(huì)如何選擇?哪個(gè)優(yōu)先級(jí)更高?
寫個(gè)示例驗(yàn)證一下,就明白啦
>>> def func():
... try:
... return 'try'
... finally:
... return 'finally'
...
>>> func()
'finally'
從輸出中,我們可以發(fā)現(xiàn):在try…finally…語句中,try中的 return 會(huì)被直接忽視(這里的 return 不是函數(shù)的終點(diǎn)),因?yàn)橐WC finally 能夠執(zhí)行。
如果 try 里的 return 真的是直接被忽視嗎?
我們都知道如果一個(gè)函數(shù)沒有 return,會(huì)隱式的返回 None,假設(shè) try 里的 return 真的是直接被忽視,那當(dāng)finally 下沒有顯式的 return 的時(shí)候,是不是會(huì)返回None呢?
還是寫個(gè) 示例來驗(yàn)證一下:
>>> def func():
... try:
... return 'try'
... finally:
... print('finally')
...
>>>
>>> func()
finally
'try'
從結(jié)果來看,當(dāng) finally 下沒有 reutrn ,其實(shí) try 里的 return 仍然還是有效的。
那結(jié)論就出來了,如果 finally 里有顯式的 return,那么這個(gè) return 會(huì)直接覆蓋 try 里的 return,而如果 finally 里沒有 顯式的 return,那么 try 里的 return 仍然有效。
審核編輯:湯梓紅
-
函數(shù)
+關(guān)注
關(guān)注
3文章
4344瀏覽量
62843 -
python
+關(guān)注
關(guān)注
56文章
4804瀏覽量
84915
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論