對象:特徵和技能的結合體python
面向對象編程:一個個對象進行交互編程
優勢:擴展性很是強app
缺點:邏輯很是複雜code
類(類別):一系列具備相同特徵和技能的對象對象
現實世界中先有對象,後有類it
# 定義學生 # 姓名: 豬瑞星 # 學號: 222222 # 學校: oldboy # 技能: 選課,三十六變 # 姓名: 孔悟空 # 學號: 111111 # 學校: oldboy # 技能: 選課,七十二變 # 姓名: 雷公 # 學號: 666666 # 學校: oldboy # 技能: 選課,電閃雷鳴,開車 # 定義老師 # 姓名:tank # 學校:oldboy # 技能:教課,piao # 姓名:nick # 學校:oldboy # 技能:教課,看書
Python中先有類,再有對象面向對象編程
class 類名(駝峯體): # 定義類,會直接運行類體代碼 # 定義一系列特徵 # 定義一系列方法 對象1 = 類名() # 實例化出對象
class OldBoyStudent: school = 'oldboy' def __init__(self, name ,age): self.name = name self.age = age def choose_course(self): print('is choosing course') stu1 = OldBoyStudent('a',1) stu1.school stu2 = OldBoyStudent('b',2) stu2.scool
class OldBoyStudent: school = 'oldboy' name = 'c' def __init__(self, name ,age): self.name = name self.age = age def choose_course(self): print('is choosing course') stu1 = OldBoyStudent('a',1) stu1.school stu2 = OldBoyStudent('b',2) stu2.scool
先從對象自己查找,而後從類中查找,類中也沒有則報錯class
class OldBoyStudent: school = 'oldboy' def __init__(self, name ,age): self.name = name self.age = age def choose_course(self): print(id(self)) # 10000 print(self.school) print(f'{self.name} is choosing course') stu1 = OldBoyStudent('a',1) stu1.choose_course() # self是對象自己 print(id(stu1)) # 10000 OldBoyStudent.choose_course(stu1)
lis = list([1,2,3]) lis2 = list([1,2,3]) lis.append(4) # list.append(lis,4)
對象會有一大堆屬性/數據,還會有一大堆方法來操做這些屬性,而後對於不一樣的對象,這些屬性又不一樣.基礎