1. 程式人生 > >py16-面向對象介紹與類

py16-面向對象介紹與類

eat 著名 優點 del 基於 訪問類 http 面向 方式

面向過程:核心是過程二字,過程指的是問題的解決步驟,即先幹什麽再幹什麽,基於面向
過程去設計程序就好比在設計一條流水線,是一種機械式的思維方式
優點:復雜的問題流程化,進而簡單化
缺點:可擴展性差
應用:腳本程序,比如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-面向對象介紹與類