python之禅怎么关闭_《Python之禅》中对于Python编程过程中的一些建议
圍繞一門(mén)語(yǔ)言,學(xué)習(xí)它的文化精髓,能讓你成為一名更優(yōu)秀的程序員。如果你還沒(méi)讀過(guò)Python之禪(Zen of Python) ,那么打開(kāi)Python的命令提示符輸入import this,列表中的每一項(xiàng)你都可以在這里找到相對(duì)應(yīng)的例子。
吸引我注意力的一條是:
優(yōu)雅勝于丑陋 (Beautiful is better than ugly)
看下面例子:
一個(gè)帶有數(shù)字參數(shù)的list函數(shù)其功能是返回參數(shù)中的奇數(shù)可以分開(kāi)寫(xiě):
?
記住Python中那些非常簡(jiǎn)單的事
兩個(gè)變量的交換:
?
參數(shù)在切片操作中的步驟,如:
?
一個(gè)特殊的例子 `x[::-1]`用來(lái)反轉(zhuǎn)x的實(shí)用語(yǔ)法。
?
不要用可變對(duì)象作為默認(rèn)參數(shù)值(Don't use mutable as defaults)
?
使用iteritems而不是items
iteriterms 使用的是 generators,所以當(dāng)?shù)艽蟮男蛄惺谴朔椒ǜ?/p>
?
此情景和range與xrange的關(guān)系相似。
使用isinstance 而不是type
不要這樣做:
?
應(yīng)該是這樣:
?
至于為什么這樣做,看這里:http://stackoverflow.com/a/1549854/504262
需要注意的是這里使用basestring而不是str是因?yàn)槟憧赡軙?huì)用一個(gè)unicode對(duì)象去檢查是否為string,例如:
?
因?yàn)樵赑ython中3.0以下的版本存在兩種字符串類(lèi)型str和unicode
學(xué)習(xí)各種集合(learn the various collections)
python有各種各樣的容器數(shù)據(jù)類(lèi)型,在特定情況下選擇python內(nèi)建的容器如:list和dict。通常更多像如下方式使用:
?
一種更好的方案如下:
?
一種更好的選擇 collection類(lèi)型defautdict:
?
其它集合
?
當(dāng)創(chuàng)建類(lèi)時(shí)Python的魔術(shù)方法:
?
條件賦值
?
表達(dá)式請(qǐng)起來(lái)恰恰像:如果y等于1就把3賦值給x,否則把2賦值給x,當(dāng)然同樣可以使用鏈?zhǔn)綏l件賦值如果你還有更復(fù)雜的條件的話(huà)。
?
然而到了某個(gè)特定的點(diǎn),它就有點(diǎn)兒過(guò)分了。
記住,你可以在任何表達(dá)式中使用if-else例如:
?
func1將被調(diào)用如果y等于1的話(huà),反之func2被調(diào)用。兩種情況下,arg1和arg2兩個(gè)參數(shù)都將附帶在相應(yīng)的函數(shù)中。
類(lèi)似地,下面這個(gè)表達(dá)式同樣是正確的
?
class1和class2是兩個(gè)類(lèi)
在有必要的時(shí)侯使用Ellipsis
創(chuàng)建類(lèi)時(shí),你可以使用__getitem__,讓你的類(lèi)像字典一個(gè)工作,拿下面這個(gè)類(lèi)舉例來(lái)說(shuō):
?
因?yàn)橛辛薩_getitem__,你就能夠通過(guò)對(duì)象x的x[‘a(chǎn)']獲取a的值,這應(yīng)該是公認(rèn)的事實(shí)。
這個(gè)對(duì)象通常用于繼承Python的切片(slicing) (http://docs.python.org/library/stdtypes.html#bltin-ellipsis-object),如果添加如下語(yǔ)句:
?
我們就可以使用x[…]獲取的包含所有項(xiàng)的序列
?
總結(jié)
以上是生活随笔為你收集整理的python之禅怎么关闭_《Python之禅》中对于Python编程过程中的一些建议的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 38 节补货:京东京造 11 代 i3-
- 下一篇: python的xpath用法_Pytho