1、什麼是物件導向程式設計?
---以前使用函式
---類+物件
2、什麼是類什麼是物件,又有什麼關係?
class 類:
def 函式1():
pass
def 函式2():
pass
#obj 是物件,例項化的過程
obj = 類()
obj.函式1()
########## 物件導向不好 #########
########## 函式程式設計好 ###########
有時候,函式程式設計能實現,比較麻煩;
物件導向可以非常簡短快速的實現;
3、什麼時候適用物件導向?
---如果多個函式需要傳入多個共同引數時,可將多個引數封裝到物件導向
---根據乙個模板建立某些東西的時候
---應用場景
#分別採用物件導向和函式的方法實現「連線伺服器、上傳檔案和執行命令、關閉連線的功能」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.cmd()
obj.close()
#-----------------函式式程式設計-------------------
def upload():
# 連線伺服器
# 上傳檔案
# 關閉伺服器
def cmd():
# 連線伺服器
# 執行命令
# 關閉伺服器
4、self就是呼叫當前方法的物件
---靜態欄位的適用場景,每個物件中儲存相同的東西時,可以使用靜態字段
class foo:#靜態字段
#公有屬性
country = "中國"
def __init__(self,name,count):
# 普通字段
# 普通屬性
self.name = name
self.count = count
# self.country = "中國"
def bar(self):
pass
obj1 = foo("河南",100000)
obj1.bar()
obj2 = foo("山東",120000)
obj2.bar()
5、封裝
----類中封裝了:字段、方法;
----物件中封裝了:普通字段(普通屬性)的值;
#---------封裝---------------class f1:
def __init__(self,n):
self.n = n
print('f1')
class f2:
def __init__(self,arg1):
self.a = arg1
print('f2')
class f3:
def __init__(self,arg2):
self.b = arg2
print('f3')
o1 = f1("alex")
o2 = f2(o1)
o3 = f3(o2)
###輸出alex###
#o3.b ==> o2
#o2.a ==> o1
o3.b.a.n
繼承
###-------繼承######class f1:
def __init__(self):
print('f1')
def a1(self):
print('f1a1')
def a2(self):
print('f1a2')
class f2(f1):
def __init__(self):
print('f2')
def a2(self):
self.a2()
print('f2a2')
class f3(f2):
def __init__(self):
print('f3')
def a2(self):
print('f3a2')
obj = f3()
obj.a2()
obj.a1()
多型(多種形態):
6、字段:
普通字段(儲存在物件中)
靜態字段(儲存在類中)
方法:普通方法(儲存在類中,呼叫者是物件)
靜態方法(儲存在類中,呼叫者是類,無需建立物件,可以有任意個引數)
###-------靜態方法######class f1:
@staticmethod
def a1(a1,a2):
print('alex')
f1.a1(1,2)
Python學習之路 物件導向
物件導向 物件導向的程式設計的核心是物件 相當於你要處於創造者的思維來建立乙個新的東西,如你要實現什麼東西,需要幹什麼才能創造出來 要理解物件為何物。物件導向的程式設計好比作者寫 作者要解決的問題就是使主角從乙個屌絲公升級到大神的故事,作者覺得要讓主角成為大神,會給主角鋪墊從弱到強的大綱,主角很弱時...
python之路 物件導向
不了解什麼是物件導向,就無法更好的掌握python python既支援面向過程的程式設計也支援物件導向的程式設計。面向過程 程式是由過程或僅僅是可重用 的函式構建起來的。物件導向 程式是由資料和功能組合而成的物件構建起來的。物件導向中兩個重要的概念是類和物件。類是對事物的抽象,比如說 人類 物件是具...
python自學之路 物件導向
定義 指類中無需例項參與即可呼叫的方法 不需要self引數 在呼叫過程中,無需將類例項化,直接在類之後使用.號運算子呼叫方法。用法 靜態方法使用 staticmethod裝飾器來宣告 class classa object staticmethod def func a print hello py...