對(duì)象的理解
對(duì)象的特征
封裝
信息隱蔽技術(shù),例如BIF功能List我們可以執(zhí)行append、sort等,但是我們不知道里面實(shí)現(xiàn)的邏輯,這叫做封裝
繼承
子類自動(dòng)共享父類之間數(shù)據(jù)和方法的機(jī)制,如果子類中定義父類同名的方法或?qū)傩?,則會(huì)自動(dòng)覆蓋父類對(duì)應(yīng)的方法或?qū)傩?/span>
?
class A(list):
pass
B = A() #
B.append(1);B.append(2);B.append(3)
print(B)
打印結(jié)果:
[1, 2, 3] #B繼承了A列表對(duì)應(yīng)的內(nèi)部函數(shù)功能
class B(A) #A是父類,意味class B繼承了父類功能
pass
多態(tài)
調(diào)用同樣的函數(shù)名,實(shí)現(xiàn)不一樣的功能
class A:
def fun(self):
print('我是小A')
class B:
def fun(self):
print('我是小B')
a = A();b = B()
print(a.fun(),b.fun())
打印結(jié)果:
我是小A
我是小B
面向?qū)ο?/h2>- OOA面向?qū)ο蠓治?/li>
- OOD面向?qū)ο笤O(shè)計(jì)
- OOP面向?qū)ο缶幊?/li>
面向?qū)ο笥袃蓚€(gè)重要概念,類(class)和實(shí)例(instance),類是抽象的模板,實(shí)例是根據(jù)類創(chuàng)建出來(lái)的一個(gè)個(gè)具體的“對(duì)象”
Python嚴(yán)格要求方法需要有實(shí)例才能被調(diào)用,這種限制其實(shí)就是Python所謂的綁定概念。
創(chuàng)建類
class Myclass(object): #pythong公約,類的第一個(gè)字母大寫(xiě)
pass
創(chuàng)建實(shí)例A
A = Myclass()
創(chuàng)建實(shí)例的時(shí)候,把我們認(rèn)為必須綁定的屬性強(qiáng)制填寫(xiě)進(jìn)去,self、__init__ ,例如在Student類時(shí),把name、score等屬性綁上去
class Student(object):
def __init__(self, name, score):
self.name = name
self.score = score
模塊的理解
- 容器:對(duì)數(shù)據(jù)的封裝,例如列表、元組、字符串、字典等
- 函數(shù):對(duì)語(yǔ)句的封裝
- 類:對(duì)方法和屬性的封裝,就是對(duì)函數(shù)和容器的封裝
- 模塊:每個(gè)保存的.py都是一個(gè)獨(dú)立的模塊,也就是程序
模塊的引入
模塊的作用將大的程序拆成小分支,易于測(cè)試和閱讀;一段好的模塊作為中間件反復(fù)被利用
引入方式:
第一種:import 模塊名
第二種:from 模塊名 import 函數(shù)名 #這個(gè)方法引用模塊函數(shù)等不需要再加模塊前綴
第三種:import 模塊名 as 新名字 #別名的方式可能在命名空間上最合適
模塊的路徑
def__init__方法是Python類中的一個(gè)無(wú)法繞開(kāi)的方法。它相當(dāng)于面向?qū)ο蠓椒ㄖ械?C++ 構(gòu)造函數(shù)
當(dāng)你創(chuàng)建一個(gè)類的新對(duì)象時(shí),Python 會(huì)自動(dòng)將你的參數(shù)傳遞給 __init__方法并調(diào)用它來(lái)初始化對(duì)象的屬性
__init__方法讓類初始化對(duì)象的屬性,沒(méi)有其他作用,它只在類中使用
if __name__ == ‘__main__’ #測(cè)試使用,這是主函數(shù)
一個(gè)python文件通常有兩種使用方法,
第一是作為腳本直接執(zhí)行
第二是 import 到其他的 python 腳本中被調(diào)用(模塊重用)執(zhí)行
因此 if __name__ == 'main': 的作用就是控制這兩種情況執(zhí)行代碼的過(guò)程
if __name__ == 'main': 下的代碼只有在第一種情況下(即文件作為腳本直接執(zhí)行)才會(huì)被執(zhí)行,而 import 到其他腳本中是不會(huì)被執(zhí)行的
搜索路徑 #import sys命令用于查詢模塊默認(rèn)可導(dǎo)入的路徑,它是一個(gè)列表,因此可以通過(guò)sys.path.append導(dǎo)入指定模塊路徑
包(package)
1、創(chuàng)建一個(gè)文件夾,用于存放相關(guān)的模塊,文件夾的名字即包的名字;
2、在文件夾中創(chuàng)建一個(gè)__init__.py的模塊文件,內(nèi)容可以為空;
3、將相關(guān)的模塊放入文件夾中
本文摘自 :https://blog.51cto.com/l