面向物件【day07】:面向物件使用場景(十一)
阿新 • • 發佈:2018-11-02
本節內容
1、概述
2、知識回顧
3、使用場景
一、概述
之前我們學了面向物件知識,那我們在什麼時候用呢?不可能什麼時候都需要用面向物件吧,除非你是純的面嚮物件語言,好的,我們下面就來談談
二、知識回顧
2.1 什麼是面向物件?
在學面向物件之前我們都是用:函式
面向物件程式設計其實就是:類 + 物件
2.2 什麼是類,什麼是物件,它們之前又有什麼關係?
1 2 3 4 5 6 7 8 9 10 11 |
class
類名:
def
函式
1
():
pass
def
函式
2
():
pass
# obj是物件,是一個例項化的
obj
=
類名() obj.函式
1
()
|
三、使用場景
3.1 提取公共功能
說明:我們把一些公共的功能,可以提取出來,並且在公共的功能中建立屬於這個物件的屬性,然後其他的方法就可以使用這個物件的屬性了
我們舉一個遠端上傳,執行命令的例子,例子程式碼如下:
1 2 3 4 5 6 7 8 9 |
def
upload():
#連線伺服器
#上傳檔案
#關閉
def
cmd():
#連線伺服器
#執行命令
#關閉
|
從上面可以看出,連線伺服器和關閉服務時屬於公共的功能,我們用面向物件實現如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
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 多個函式傳入共同引數
說明:當很多的函式需要有公共的引數時,可以吧引數提取出來,封裝到物件中,便於以後方便使用
比如說,我們有很多的函式,需要用公共的引數,程式碼如下:
1 2 3 4 5 6 7 8 |
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這四個引數,那我們就可以封裝到物件中,程式碼如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
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
....
|
總結:
- 我們把一些公共的功能,可以提取出來,並且在公共的功能中建立屬於這個物件的屬性,然後其他的方法就可以使用這個物件的屬性了
- 根據一個模板去建立某些東西
- 多個函式傳入共同引數