python8之面向對象補充之使用場景
阿新 • • 發佈:2017-06-12
根據 true 3.2 其他 我們 ... 3.3 例子 面向
一、概述
之前我們學了面向對象知識,那我們在什麽時候用呢?不可能什麽時候都需要用面向對象吧,除非你是純的面向對象語言,好的,我們下面就來談談
二、知識回顧
2.1 什麽是面向對象?
在學面向對象之前我們都是用:函數
面向對象編程其實就是:類 + 對象
2.2 什麽是類,什麽是對象,它們之前又有什麽關系?
class 類名: def 函數1(): pass def 函數2(): pass # obj是對象,是一個實例化的 obj = 類名() obj.函數1()
三、使用場景
3.1 提取公共功能
說明:我們把一些公共的功能,可以提取出來,並且在公共的功能中創建屬於這個對象的屬性,然後其他的方法就可以使用這個對象的屬性了
我們舉一個遠程上傳,執行命令的例子,例子代碼如下:
def upload(): #連接服務器 #上傳文件 #關閉 def cmd(): #連接服務器 #執行命令 #關閉
從上面可以看出,連接服務器和關閉服務時屬於公共的功能,我們用面向對象實現如下:
class SSH: def __init__(self,host,port,pwd,username): self.host = host .... def connection(self): #去創建連接 self.conn = #和服務器創建的連接對象() def close(self): #關閉 self.conn.關閉 def upload(self): self.conn #使用連接上傳文件 def cmd(self): self.conn #使用連接執行命令 obj = SSH(...) obj = connection() obj.upload() obj.close()
3.2 根據一個模板去創建某些東西
說明:我們用面向對象,其實就是建立一個模板,比如說見一個person類,通過這個person類去實例化很多對象,子類繼承它的時候,也可以重用一些屬性和方法,這裏就不多說了
3.3 多個函數傳入共同參數
說明:當很多的函數需要有公共的參數時,可以吧參數提取出來,封裝到對象中,便於以後方便使用
比如說,我們有很多的函數,需要用公共的參數,代碼如下:
def f1(host,port,pwd,arg): pass def f2(host,port,pwd,arg,arg2): pass def f3(host,port,pwd,arg,arg2): pass
上面三個函數都用到了host、port、pwd、arg這四個參數,那我們就可以封裝到對象中,代碼如下:
class f: def __init__(self,host,port,pwd,arg): self.host = host self.port = port self.pwd = pwd self.arg = arg def f2(self): self.host .... def f2(self,args2): self.host .... def f3(self,args2): self.host ....
總結:
- 我們把一些公共的功能,可以提取出來,並且在公共的功能中創建屬於這個對象的屬性,然後其他的方法就可以使用這個對象的屬性了
- 根據一個模板去創建某些東西
- 多個函數傳入共同參數
python8之面向對象補充之使用場景