Python面向?qū)ο蟾鶭ava的面向?qū)ο蟠笸‘?,這篇我們簡(jiǎn)單介紹一下Python面向?qū)ο?。以下是小編為你整理的怎么學(xué)習(xí)python框架 ?
類(lèi)(class)是通俗的說(shuō)就是事物的屬性和行為的抽象。下面我們定義個(gè)動(dòng)物類(lèi),名稱(chēng)和體重是動(dòng)物屬性,動(dòng)物的叫是動(dòng)物行為(方法)。然后獲取類(lèi)的實(shí)例。 ?
上面的代碼有幾個(gè)點(diǎn)需要說(shuō)明一下: ?
(1) self: self是個(gè)形式參數(shù),代表本類(lèi)的實(shí)例(類(lèi)似于Java的this關(guān)鍵字)通過(guò)self可以調(diào)用本類(lèi)的屬性和方法。 ?
(2) __init__(self):初始化方法,類(lèi)似java的構(gòu)造方法 ?
(3) shout(self): 類(lèi)方法和普通方法的區(qū)別是類(lèi)方法必須帶一個(gè)名稱(chēng)為self的參數(shù)
?
創(chuàng)建對(duì)象python中沒(méi)有new關(guān)鍵字,直接通過(guò)方法名參數(shù)列表,跟調(diào)用普通方法沒(méi)什么區(qū)別。 ?
訪問(wèn)和賦值類(lèi)的屬性 ?
(1) 通過(guò)“.”類(lèi)訪問(wèn)對(duì)象的屬性和行為 ?
(2) getattr(obj, name[, default]) : 訪問(wèn)對(duì)象的屬性。 ?
(3) 通過(guò)“=”號(hào)賦值 ?
(4)setattr(obj,name,value) : 賦值對(duì)象屬性,如果屬性不存在,會(huì)創(chuàng)建一個(gè)新屬性。 ?
類(lèi)的方法: ?
(1) 實(shí)例方法:*個(gè)參數(shù)self,通過(guò)實(shí)例來(lái)訪問(wèn) ?
(2) 類(lèi)方法:*個(gè)參數(shù)cls代表當(dāng)前的類(lèi),classmethod() 來(lái)創(chuàng)建類(lèi)方法。類(lèi)名和實(shí)例都可以訪問(wèn)。 ?
(3) 靜態(tài)方法:其實(shí)跟普通方法差不多,沒(méi)有默認(rèn)參數(shù),類(lèi)名和實(shí)例都可以調(diào)用。 ?
int對(duì)象的創(chuàng)建方法
int對(duì)象的創(chuàng)建方法 ?
1.通過(guò)內(nèi)置語(yǔ)法規(guī)則創(chuàng)建 ?
和我們平時(shí)看見(jiàn)的整數(shù)一樣。 ?
2.通過(guò)int函數(shù)創(chuàng)建 ?
int函數(shù)是Python的內(nèi)置函數(shù),可以從字符串、浮點(diǎn)數(shù)(小數(shù))等對(duì)象創(chuàng)建整數(shù)。 ?
當(dāng)然,如果使用不當(dāng),傳入的字符串中不是整數(shù),或者傳入了不恰當(dāng)?shù)念?lèi)型,就會(huì)引發(fā)錯(cuò)誤。 ?
我們可以看見(jiàn),int函數(shù)要求傳入一個(gè)數(shù)或者一個(gè)字符串。 ?
常用的int對(duì)象操作運(yùn)算 ?
1.加減法 ?
加減法的運(yùn)算與數(shù)學(xué)中相同,對(duì)于我們來(lái)說(shuō),大數(shù)字運(yùn)算中它們會(huì)提供更大便利。Python是比較高級(jí)的語(yǔ)言,所以支持負(fù)數(shù)運(yùn)算。 ?
Python中乘法用“*”表示,運(yùn)算規(guī)則一樣。 ?
設(shè)定一個(gè)列表
比如:a = [123,456,789],b = 123,b in a (結(jié)果True) ?
解析:b是否被a包含 ?
把b改為一個(gè)其他的數(shù)值,比如b = 1234 ?
然后b in a,結(jié)果是False,因?yàn)閍里面找不到b所指向的對(duì)象(1234) ?
需要注意,in后面的對(duì)象必須是元組、列表這些集合類(lèi)型的對(duì)象 ?
但是in前面的對(duì)象可以是任何類(lèi)型的對(duì)象,如圖2 ?
對(duì)于字符串 ?
比如:a = 'abcd','c' in a (結(jié)果True) ?
in還常用于循環(huán)
?
比如:a = [123,456,789] ?
for x in a: ?
print(x) ?
注:循環(huán)后面會(huì)詳細(xì)講(可以關(guān)注下,還有其他Python相關(guān)經(jīng)驗(yàn)) ?
not in ?
與in剛剛好相反,in是False的話,not in就是True ?
os模塊
os模塊用于提供跨操作系統(tǒng)的、可以移植的操作,可以執(zhí)行基本上所有的linux命令,可以說(shuō)是python最常用的模塊之一。 ?
下面開(kāi)始介紹這個(gè)模塊里常用的功能。如果你想直到當(dāng)前的操作系統(tǒng)平臺(tái)可以這樣使用(命令行模式演示,腳本方式類(lèi)似)。 ?
import os print os.name 如果你用windows系統(tǒng),就會(huì)使出nt,同理linux、unix系統(tǒng)就會(huì)輸出posix。 ?
如果想利用os模塊得到當(dāng)前工作目錄,類(lèi)似于shell里的pwd的話,可以用os.getpwd()函數(shù),顯示的是當(dāng)前python腳本的目錄路徑。 ?
如果想返回指定目錄下的所有文件和目錄名,用os.listdir()函數(shù)即可獲得。 ?
這里我使用 print os.listdir(os.getcwd()) 先獲得當(dāng)前目錄再獲得當(dāng)前目錄下的所有文件。 ?
接下來(lái)演示一下os.remove來(lái)刪除一個(gè)文件。先touch新建一個(gè)abc,ls顯示出來(lái),在命令行里執(zhí)行os.remove('abc')刪除 ?
接下來(lái)介紹os.system()這個(gè)函數(shù),可以用來(lái)執(zhí)行操作系統(tǒng)的shell命令。os.sep用來(lái)顯示系統(tǒng)的分隔符,os.linesep用來(lái)顯示系統(tǒng)的換行符Windows使用'rn',Linux使用'n'而Mac使用'r'。