类的属性--组合
組合:組合指的是,在一個類中以另外一個類的對象作為數據屬性,稱為類的組合----通俗的講就是什么里面有什么。
class Weapon:def prick(self, obj): # 這是該裝備的主動技能,扎死對方obj.life_value -= 500 # 假設攻擊力是500class Person: # 定義一個人類role = 'person' # 人的角色屬性都是人def __init__(self, name):self.name = name # 每一個角色都有自己的昵稱;self.weapon = Weapon() # 給角色綁定一個武器; egg = Person('egon') egg.weapon.prick() 裝備武器組合的應用一般有3中方法:
1,直接調用,這個要考慮到Circle類里的東西,如果Circle類里面有2個元素,那么__init__(self)里面就要再多加2個元素,并且2個元素名要與Circle元素名一樣。
def __init__(self,radius_outside,radius_inside):self.outsid_circle = Circle(radius_outside)self.inside_circle = Circle(radius_inside)2,是在實例化的時候調用,把里面的元素整個替換為之前的類名,當然這里還是要去類名里面全部的元素。 class BirthDate:def __init__(self,year,month,day):self.year=yearself.month=monthself.day=dayclass Couse:def __init__(self,name,price,period):self.name=nameself.price=priceself.period=periodclass Teacher:def __init__(self,name,gender,birth,course):self.name=name self.gender=genderself.birth=birthself.course=coursedef teach(self): print('teaching')p1=Teacher('egon','male', BirthDate('1995','1','27'), Couse('python','28000','4 months')) print(p1.birth.year,p1.birth.month,p1.birth.day) print(p1.course.name,p1.course.price,p1.course.period) ''' 運行結果: 1 27 python 28000 4 months
3,直接在類名里面就用。
class Cource:def __init__(self,name,perid,money):self.name =nameself.perid=peridself.money=moneyclass Bir:def __init__(self,y,m,d):self.y=yself.m=mself.d=dclass Teacher:def __init__(self,name,age,y,m,d):self.name =nameself.age=age self.birth=Bir(y,m,d)egg=Teacher("egon",73,1995,12,16) print(egg.name ) print(egg.birth.y)
?
轉載于:https://www.cnblogs.com/52forjie/p/7361415.html
總結
- 上一篇: K-sum
- 下一篇: Hadoop- MapReduce分布式