代碼展示2
22 # 通過對(duì)象名修改屬性(若self里 存在該屬性,是修改;若self里 不存在該屬性,是添加新屬性)23 # rec_obj1.length = 2024 # rec_obj1.temVar = 'object_over' # 給對(duì)象中添加一個(gè)新屬性 'temVar': 'object_over'25 # 通過類名修改屬性(若類里 存在該屬性<靜態(tài)屬性>,是修改;若類里 不存在該屬性,是添加新屬性,<靜態(tài)屬性>)26 # Rectangle.length = 50 # 在類中添加一個(gè)新屬性 'length': 5027 # Rectangle.temVar = 'class_over'總結(jié):
# 對(duì)象 = 類名()
# 實(shí)例化的過程:
# 類名() -> 會(huì)創(chuàng)造出一個(gè)對(duì)象,即創(chuàng)建了一個(gè)self變量
# 調(diào)用__init__(self)方法,類名括號(hào)里的參數(shù)會(huì)被這里接收
# 執(zhí)行__init__(self)方法
# 返回self
# 對(duì)象能做的事:
# 查看屬性(自己的屬性 和 類中靜態(tài)屬性)
# 調(diào)用方法
# __dict__ 對(duì)于對(duì)象的增刪改查操作都可以通過字典的語法進(jìn)行
# 類名能做的事:
# 實(shí)例化
# 調(diào)用類中的屬性,也就是調(diào)用靜態(tài)屬性
# 調(diào)用方法 : 只不過要自己傳遞self參數(shù)
# __dict__ 對(duì)于類中的名字只能看 不能操作
2. 類與對(duì)象的關(guān)系(類與對(duì)象的命名空間問題)(1)類的命名空間創(chuàng)建一個(gè)類,就會(huì)自動(dòng)創(chuàng)建一個(gè)該類的命名空間,在該命名空間中存儲(chǔ)類的屬性(靜態(tài)屬性、動(dòng)態(tài)屬性(方法));
靜態(tài)屬性:直接在類中定義的變量;(靜態(tài)屬性屬于類,即屬于所有對(duì)象)
動(dòng)態(tài)屬性:在類中定義的函數(shù);(動(dòng)態(tài)屬性綁定到所有對(duì)象)
(2)對(duì)象的命名空間實(shí)例化一個(gè)對(duì)象,就會(huì)自動(dòng)創(chuàng)建一個(gè)該對(duì)象的命名空間,在該命名空間中存放對(duì)象的屬性;同時(shí),在實(shí)例化之后,就后產(chǎn)生一個(gè)指向類對(duì)象指針,用來指向當(dāng)前對(duì)象所屬類的命名空間,這樣就可以訪問類的靜態(tài)屬性與動(dòng)態(tài)屬性 。
在對(duì)象尋找屬性的過程中,優(yōu)先從對(duì)象的命名空間中搜索,然后去類的命名空間中查找,最后在父類的命名空間中查找...,若沒有找到該屬性,程序就會(huì)拋出異常 。
注:類與對(duì)象的命名空間是獨(dú)立存儲(chǔ)的

文章插圖
完整代碼展示:
class Family: ''' 定義一個(gè)公共賬號(hào) ,只要有人上班,就將錢存到這個(gè)賬號(hào)上 ''' share_money = 0 # 不可變數(shù)據(jù)類型做靜態(tài)屬性 native_place = ['china'] # 可變數(shù)據(jù)類型做靜態(tài)屬性 def __init__(self, role, name, salary): self.role = role self.name = name self.salary = salary def work(self): Family.share_money += self.salary # 將每個(gè)的錢都存放到這個(gè)公共賬號(hào)上 print('the account remains ¥%s '%Family.share_money)member1 = Family('father', 'lilei', 1000)member2 = Family('mother', 'zhanghua', 500)member1.work() # the account remains ¥1000member2.work() # the account remains ¥1500member1.share_money = 200 # 為自己獨(dú)立開了個(gè)小金庫(kù),并存入200元 -- 在對(duì)象member1中添加這一屬性member1.share_money += 100 # 以后就可以在自己的小金庫(kù)中存放私房錢,即總金額=200+100=300member2.share_money += 400 # 將公有賬號(hào)作為自己的私有賬號(hào),并存入400元,即總金額=1000+500+400=1900print(Family.share_money) # 1000+500=1500print(member1.share_money) # 200+100=300print(member2.share_money) # 1000+500+400=1900"""可變數(shù)據(jù)類型做靜態(tài)屬性的影響:Family.native_place = 'america'# member1.native_place[0] = 'america' # 修改的是類中的native_place,會(huì)影響所有對(duì)象(同上)# member2.native_place[0] = 'america' # 修改的是類中的native_place,會(huì)影響所有對(duì)象(同上)print(member1.__dict__)print(member2.__dict__)print(Family.__dict__){'role': 'father', 'name': 'lilei', 'salary': 1000, 'share_money': 300}{'role': 'mother', 'name': 'zhanghua', 'salary': 500, 'share_money': 1900}{'__module__': '__main__', '__doc__': '\n 定義一個(gè)公共賬號(hào) ,只要有人上班,就將錢存到這個(gè)賬號(hào)上\n ','share_money': 1500, 'native_place': ['america'], '__init__': <function Family.__init__ at 0x0000021C360084C8>,'work': <function Family.work at 0x0000021C3629C048>, '__dict__': <attribute '__dict__' of 'Family' objects>,'__weakref__': <attribute '__weakref__' of 'Family' objects>}""""""可變數(shù)據(jù)類型做靜態(tài)屬性的影響:member1.native_place = 'america' # 重新賦值,在當(dāng)前對(duì)象的命名空間中添加這個(gè)屬性,不會(huì)影響其它對(duì)象print(member1.__dict__)print(member2.__dict__)print(Family.__dict__){'role': 'father', 'name': 'lilei', 'salary': 1000, 'share_money': 300, 'native_place': 'america'}{'role': 'mother', 'name': 'zhanghua', 'salary': 500, 'share_money': 1900}{'__module__': '__main__', '__doc__': '\n 定義一個(gè)公共賬號(hào) ,只要有人上班,就將錢存到這個(gè)賬號(hào)上\n ','share_money': 1500, 'native_place': ['china'], '__init__': <function Family.__init__ at 0x000002E4747684C8>,'work': <function Family.work at 0x000002E4749FC048>, '__dict__': <attribute '__dict__' of 'Family' objects>,'__weakref__': <attribute '__weakref__' of 'Family' objects>}"""
經(jīng)驗(yàn)總結(jié)擴(kuò)展閱讀
- 溫度升高電阻怎么變化
- 2023年屬蛇人最佳結(jié)婚日子是哪幾天 屬蛇人結(jié)婚吉日查詢
- 2023年適合屬馬人結(jié)婚的吉日查詢 屬馬人結(jié)婚吉日查詢
- 2023年適合屬羊人結(jié)婚的吉日查詢 屬羊人結(jié)婚吉日查詢
- 2023年屬豬人結(jié)婚的良辰吉日查詢 屬豬人結(jié)婚吉日查詢
- 屬兔2023本命年年結(jié)婚好嗎挑選良辰吉日結(jié)婚安全幸福
- 美赫吊頂屬于幾線品牌?
- 88年屬龍的是什么命
- 沌口屬于武漢哪個(gè)區(qū)
- 奧迪A3適合男人開嗎
