01什麼是面向物件,面向物件的基本操作
1.0---面向物件的概念
.
類: 具有相同屬性和技能的一類事物; (人類就可以作包含了多個物件(人)的類)
物件: 具體類的表現,具體到個體,實實在在的一個例項; (高小波是一個人,就是人類中實實在在的個體)
為什麼要學習類,物件: 可以將程式碼形成一個個程式碼塊,這些程式碼塊可以進行相互間的操作(類間的繼承,物件對類的操作),有利於程式碼的規範和引用
.
2.0---類的格式
.
類體: 包括倆部分 變數部分(靜態變數) ,方法(函式)部分(普通函式,構造方法)
class Person: # Person 類名 name='有名字' # 靜態變數,(也叫靜態欄位) animal='高階動物' faith='有信仰' def work(self): # 方法(函式) print('有沒有工作') def house(self): print(self) print('有沒有房子')
.
3.0---面向物件的操作
.
對類的操作可以從倆個角度來講:通過類名對類進行操作,通過物件對類進行操作
從類名的角度:
.
a.-- dict
Person.dict 操作 查詢類中的所有內容;不能進行增刪改操作
b.--萬能的 . (可實現增刪改查)
print(Person.name) # 查
Person.age=25 # 增 在類的函式中也可以操作
Person.name='高波' # 改
del Person.animal # 刪
操作類中的方法(在工作中基本不用)
Person.work(11)
.
從物件的角度
class Person: name='有名字' # 靜態變數,或者是靜態欄位 animal='高階動物' faith='有信仰' def __init__(self,name,age,sex,hobby): # 構造方法(每個類都要有構造方法) self.name=name self.age=age self.sex=sex self.hobby=hobby # 給物件封裝相應的屬性(變數,可控); def work(self): print('有沒有工作') def house(self): print(self) print('有沒有房子')
ret=Person('高波',25,'boy','不知道')
預設將Person的空間地址傳給self,其他得引數會依次傳入
#1, 類名+()產生一個例項(物件,物件空間.)
#2, 自動執行類中的init方法,將物件空間傳給init的self引數,
#3, 給物件封裝相應的屬性(變數). 可控的
自動執行類中的init方法,將物件空間傳給init的self引數,
Person() # 類名+() 的這個過程:例項化的過程(建立一個物件的過程)
Person() 例項化物件,例項,物件
a.--操作物件中的靜態變數
1.0 dict 查詢物件中的所有內容
2.0 萬能的 .
print(ret.name) ret.hith=1.68 del ret.hobby ret.name='高小波' print(ret.__dict__)
b.--物件操作類中的靜態變數
print(ret.name) # 如果物件中有就會先查詢物件中的,沒有的得話,向上一步查詢類中的
print(ret.faith)
c.--物件操作類中的方法 (工作中,通過物件)
ret.work()
ret.house()