python:类的空间问题 类与类之间的关系
生活随笔
收集整理的這篇文章主要介紹了
python:类的空间问题 类与类之间的关系
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.類的空間問題
1.1何處可以添加對象屬性
class A:def __init__(self,name):self.name = namedef func(self,sex):self.sex = sex # 類外面可以: obj = A("barry") obj.age = 18 print(obj.__dict__) # ("name": "barry", "age": 18)# 類內部也可以 obj = A("barry") obj.func("男") # __init__方法可以 # func 方法也可以總結:
對象的屬性不僅可以在__ init __里面添加,還可以在類的其他方法或者類的外面添加
1.2何處可以添加類的靜態屬性
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' class A:def __init__(self,name):self.name = namedef func(self,sex):self.sex = sexdef func1(self):A.bbb = 'ccc' # 類的外部可以添加A.aaa = 'taibai' print(A.__dict__)# 類的內部也可以添加。A.func1(111) print(A.__dict__)總結:
類的屬性不僅可以在類內部添加, 還可以在類的外部添加
1.3對象如何找到類的屬性
總結:
對象查找屬性的順序:先從對象空間找 ------> 類空間找 ------> 父類空間找 ------->…
類名查找屬性的順序:先從本類空間找 -------> 父類空間找--------> …
上面的順序都是單向不可逆,類名不可能找到對象的屬性。
2.類與類之間的關系
2.1依賴關系
將一個類的類名或者對象傳入另一個類的方法中
class Elephant:def __init__(self, name):self.name = namedef open(self, obj):print(f"{self.name}開門")obj.be_open()def close(self):print(f"{self.name}關門")class Refrigerator:def __init__(self, name):self.name = namedef be_open(self):print(f"{self.name}被打開")def be_close(self):print(f"{self.name}被關閉")daxiang = Elephant("大象") bingxiang = Refrigerator("冰箱") daxiang.open(bingxiang)2.2組合關系
給一個類的對象封裝一個屬性,此屬性為另一個類的
對象
組合與依賴的例子
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' class GameRole:def __init__(self, name, ad, hp):self.name = nameself.ad = adself.hp = hpdef attack(self, p1):p1.hp = p1.hp - self.adprint(f"{self.name}攻擊{p1.name}, 誰掉了{self.ad}血, 還剩{p1.hp}血")print(f"{p1.name}的血量{p1.hp}")def equipment_wea(self, wea):self.weapon = weaclass Weapon:def __init__(self, name, ad):self.name = nameself.ad = addef weapon_attack(self, p1, p2):p2.hp = p2.hp - self.adprint(f"{p1.name}利用{self.name}給了{p2.name}一下子,{p2.name}掉了{self.ad}血,還剩{p2.hp}血")gailun = GameRole("蓋倫", 10, 100) xin = GameRole("趙信", 20, 80) sword = Weapon("大寶劍", 15) musket = Weapon("長纓槍", 30)gailun.equipment_wea(sword) gailun.weapon.weapon_attack(gailun, xin)總結
以上是生活随笔為你收集整理的python:类的空间问题 类与类之间的关系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python logging模块之han
- 下一篇: python有参装饰器 多个装饰器装饰一