命名規(guī)則:
類:以大寫字母開頭的單數(shù)名詞作為名字止潘,例如用Data掺炭,而不用data或Datas辫诅。當(dāng)有多個單詞時應(yīng)該用“駝峰命名法”凭戴,例如CreditCard。
函數(shù):以小寫單詞組成炕矮,如有多個單詞組成么夫,應(yīng)該用“_”分割單詞,例如 :reverse()肤视、get_score()档痪。如果,函數(shù)的唯一目的是返回一個值邢滑,那么函數(shù)名可以是一個描述返回值的名詞腐螟。如sqrt()。
變量名:即標(biāo)識對象的名字應(yīng)該是一個小寫名詞困后,如price乐纸。有時也用一個大寫字母表示一個數(shù)據(jù)結(jié)構(gòu)的名稱,如用T表示tree摇予。
常量:用大寫字母并用“_”隔開單詞的標(biāo)識符通常是一個常量汽绢。
另:命名要見名知意,不要用諸如:a,s,v,r,t侧戴,這樣沒有實際意義的名字宁昭。最好能夠反映行為、責(zé)任酗宋、命令的單詞积仗。
編碼風(fēng)格:
縮進(jìn):這是python中很重要的一點(diǎn)、python用縮進(jìn)來分割代碼蜕猫、代碼塊斥扛。通常是4個空格,但也有用Tab來縮進(jìn)的,但是在python解釋器中稀颁,空格和tab制表符是不可以混用的芬失。所以強(qiáng)烈建議使用空格。
命名規(guī)范:上面講過了匾灶。
注釋:在有歧義或者令人困惑無法理解的地方放上注釋棱烂,可以讓代碼的可讀性變高,可以快速理解代碼阶女。多行注釋可以讓人能夠理解很復(fù)雜的代碼邏輯颊糜。單行注釋用#,多行注釋用‘‘‘ 多行注釋 ’’’秃踩。
文檔:
python使用一個叫docstring的機(jī)制為在源代碼中插入文檔提供了支持衬鱼。從形式上來說,文檔一般放在類憔杨、函數(shù)鸟赫、模塊的主體的第一條語句。按照慣例消别,文檔應(yīng)該限定在""" """之中抛蚤。
一般來說,第一行用很簡短的話概括代碼的目的寻狂,然后空一行岁经,對函數(shù)、類等的參數(shù)進(jìn)行詳細(xì)介紹蛇券。
docstring作為模塊缀壤、類和函數(shù)額一個域進(jìn)行存儲。它可以做文檔使用纠亚,也可以用多種方式檢索塘慕。
運(yùn)算法重載:
自學(xué)python很久了,對于面向?qū)ο缶幊桃恢蹦@鈨煽刹思希瑢τ谶\(yùn)算符重載更是糊里糊涂苍糠。今天我明白了。
先說1 + 1
這個式子啤誊,這個式子中的“ + ”岳瞭,它在左右兩邊都是數(shù)值時,會執(zhí)行加法蚊锹,但是當(dāng)左右兩邊都是字符串時瞳筏,他又是執(zhí)行鏈接運(yùn)算了,如果是列表類型牡昆,它就會返回一個兩個列表合起來的新列表姚炕。
那么1 + "a"
這個式子呢摊欠?這個式子是非法的,無法執(zhí)行柱宦。
運(yùn)算法重載些椒,其實就是重新定義該運(yùn)算符的作用,比如掸刊,我新定義一個Car類免糕,代表車子。并創(chuàng)建了兩個實例:car_1和car_2忧侧,然后我又執(zhí)行了:car_1 + car_2
石窑,這回發(fā)生什么呢?
會報錯蚓炬。因為我們并沒有給Car類賦予相加的能力松逊。當(dāng)然說車子相加也沒什么意義。但是我現(xiàn)在就想
car_1 + car_2
能輸出一輛隨機(jī)的新車怎么辦?就想最近很火的養(yǎng)錕游戲肯夏,可以升級经宏。我希望我的車也有這個功能。
則我們可以這么寫:
class Car:
def __init__(self,name,type,price):
--snip--
def __add__(self):
return Car("奔馳", "S",1000000)
這樣我們就可以運(yùn)行car_1 + car_2
可以返回一個奔馳S系轎車熄捍。
對于其他的運(yùn)算符:-烛恤、=母怜、*余耽、&、……等一切自帶的運(yùn)算符苹熏,或者特殊函數(shù)都可以重新賦予新的功能碟贾。
學(xué)完之后,我感覺我在計算機(jī)中我就是上帝轨域,我可以制定一切規(guī)則袱耽。就好像那個沙盒游戲——我的世界。我可以創(chuàng)造一切干发。