py16-面向對象介紹與類
面向過程:核心是過程二字,過程指的是問題的解決步驟,即先幹什麽再幹什麽,基於面向
過程去設計程序就好比在設計一條流水線,是一種機械式的思維方式
優點:復雜的問題流程化,進而簡單化
缺點:可擴展性差
應用:腳本程序,比如linux系統管理腳本,著名案例:linux內核,httpd,git
面向對象:核心是對象二字,對象就是特征與技能的結合體
優點:可擴展性強
缺點:復雜
類:是一系列對象相似的特征與技能的結合體
在現實世界中,先有一個個具體存在的對象,總結相似之處---現實中的類
在程序中:一定是先定義類,後調用類產生對象
定義類:
class OldboyStudent:
school = ‘oldboy‘
def learn(self):
print(‘is learning‘)
print(‘========>‘)
#類體的代碼在類定義階段就會執行
查看類的名稱空間:
class OldboyStudent:
school = ‘oldboy‘
def learn(self):
print(‘is learning‘)
print(OldboyStudent.__dict__)
再定義:
class OldboyStudent:
school = ‘oldboy‘ #類的數據屬性
def learn(self): #類的函數屬性
print(‘is learning‘)
def eat(self):
print(‘is eating‘)
print(OldboyStudent.__dict__)
獲取類內部的值:
class OldboyStudent:
school = ‘oldboy‘
def learn(self):
print(‘is learning‘)
def eat(self):
print(‘is eating‘)
print(OldboyStudent.__dict__[‘school‘])
print(OldboyStudent.__dict__[‘learn‘])
訪問類的屬性:
class OldboyStudent:
school = ‘oldboy‘ #類的數據屬性
def learn(self): #類的函數屬性
print(‘is learning‘)
def eat(self):
print(‘is eating‘)
# print(OldboyStudent.__dict__[‘school‘])
# print(OldboyStudent.__dict__[‘learn‘])
print(OldboyStudent.school)
print(OldboyStudent.learn) #就是函數的內存地址加()執行這個函數
類的函數屬性的函數調用:
class OldboyStudent:
school = ‘oldboy‘ #類的數據屬性
def learn(self): #類的函數屬性
print(‘is learning‘)
def eat(self):
print(‘is eating‘)
# print(OldboyStudent.__dict__[‘school‘])
# print(OldboyStudent.__dict__[‘learn‘])
print(OldboyStudent.school)
print(OldboyStudent.learn)
OldboyStudent.learn(123)
修改類的屬性:
class OldboyStudent:
school = ‘oldboy‘ #類的數據屬性
def learn(self): #類的函數屬性
print(‘is learning‘)
def eat(self):
print(‘is eating‘)
# print(OldboyStudent.__dict__[‘school‘])
# print(OldboyStudent.__dict__[‘learn‘])
print(OldboyStudent.school)
print(OldboyStudent.learn)
OldboyStudent.x=‘xtyang‘ #添加類的屬性
OldboyStudent.school=‘Oldboy‘ #修改類的屬性
print(OldboyStudent.__dict__) #查看
刪除類的屬性:
class OldboyStudent:
school = ‘oldboy‘ #類的數據屬性
def learn(self): #類的函數屬性
print(‘is learning‘)
def eat(self):
print(‘is eating‘)
# print(OldboyStudent.__dict__[‘school‘])
# print(OldboyStudent.__dict__[‘learn‘])
print(OldboyStudent.school)
print(OldboyStudent.learn)
OldboyStudent.x=‘xtyang‘
OldboyStudent.school=‘Oldboy‘
del OldboyStudent.school #刪除類的屬性
print(OldboyStudent.__dict__)
py16-面向對象介紹與類