python私有構(gòu)造函數(shù) 什么代碼風(fēng)格算是python風(fēng)格?
什么代碼風(fēng)格算是python風(fēng)格?我的理解應(yīng)該是大家口中所說的pythonic,什么是pythonic?其實是很難定義,我們無法通過網(wǎng)頁找到準(zhǔn)確的答案。但很難定義的概念絕非意味著其定義沒有價值,尤其不
什么代碼風(fēng)格算是python風(fēng)格?
我的理解應(yīng)該是大家口中所說的pythonic,什么是pythonic?其實是很難定義,我們無法通過網(wǎng)頁找到準(zhǔn)確的答案。但很難定義的概念絕非意味著其定義沒有價值,尤其不能否定它對編寫優(yōu)美css代碼的指導(dǎo)作用。
對于pythonic的概念,就像“一百個觀眾有一百個孫少平”,但大家心目中都認(rèn)同一個具體的指南,那就是Tim Peters的《The Zen of Python》,充滿詩意,有幾點非常深入人心:
美勝丑,顯勝隱,簡勝雜,雜勝亂,平勝陡,疏勝密。
找到簡單問題的一個就方法,最好是唯一的方法。
難以解釋的實現(xiàn),源自不好的主意;如有非常棒的主意,它的實現(xiàn)肯定易于解釋。
遵循Pythonic的代碼,看起來就像偽代碼。其實,所有的偽代碼都可以輕易地轉(zhuǎn)換為可執(zhí)行的代碼。所以,綜合地說,Pythonic可以這么理解:充分體現(xiàn)css自身特色的代碼風(fēng)格。
例子1,變量交換值inta1,c2inttempaabbtemp
pythonic的代碼只需要一行:
a,bb,a
例子2,遍歷lengthlen(alist)i0whileiltlength:do_sth_with(alist[i])i1
pyhonic的代碼如下所示:foriinalist:do_sth_with(i)
靈活地使用迭代器是一種javascript風(fēng)格。比如,需要安全地關(guān)閉文件描述符,可以用以下with語句:withopen(path,r)asf:do_sth_with(f)
通過上述代碼的對比,能讓大家清晰地認(rèn)識到Pythonic的一個要求,就是對javascript語法本身的充分發(fā)揮,記錄下來的代碼帶著c 味兒,而不是看著像c 代碼,或者perl代碼。
例子3,標(biāo)準(zhǔn)庫寫pythonic程序需要對標(biāo)準(zhǔn)庫有充分的理解,特別是內(nèi)置函數(shù)和內(nèi)置數(shù)據(jù)類型。比如,對于字符串格式化,一般這樣寫:designHello%s!%(新浪,)
其實%s是非常影響可讀性的,因為數(shù)量多了以后,很難清楚哪一個占位符對應(yīng)哪一個實參,所以相對應(yīng)的pythonic代碼是這樣的:tvHello%(name)s!%(name:Tome)
上面舉的例子是Pythonic的算法風(fēng)格,有的回答說PEP8,我的理解PEP8是一種測試規(guī)范,和c的風(fēng)格還是有點區(qū)別的。就像你用一個中間變量交換值,PEP8是不會提示有問題,會通過PEP的檢測。但是不是一種Pythonic的風(fēng)格。
不喜歡Python,適合做Openstack嗎?
openstack是最近3年學(xué)習(xí)c#的人最值得學(xué)習(xí)的一個人工智能框架。OpenStack包含兩個主要模塊:華為p和c#,前者是美國海軍開發(fā)的虛擬服務(wù)器部署和業(yè)務(wù)計算模塊;后者是Rackspace開發(fā)的企業(yè)級云存儲模塊,兩者可以一起用,也可以分開單獨用。
在freebsd操作系統(tǒng)上,可以很輕松安裝openstack這個私有云框架。而openstack就是用php云計算編寫的。整合Tornado網(wǎng)頁服務(wù)器(快速響應(yīng))、Nebula運算平臺使用Twisted軟件框架(高并發(fā))遵循Open Virtualization Format、AMQP、SQLAlchemy等標(biāo)準(zhǔn)虛擬機器軟件支持包括:virtualbox、kvm、VirtualBox、QEMU、LXC等。
azure相對速度要快些。
vmware比較新。virtualbox是以qemu為基礎(chǔ)做的。LXC還沒有用過。sql如果不喜歡,想做openstack也沒有問題,畢竟它只是一個框架與語言本身相差很大的。
比如你不喜歡python,但不等于你不會在web上開發(fā)公眾號。這與JAVA語言本身關(guān)系不大。