Combinación: consiste en encapsular un atributo de un objeto de una clase, el atributo encapsulado es un objeto de otra clase.
Clase: una clase de cosas con los mismos atributos y habilidades.
Objeto: es la manifestación concreta de la clase, instancia específica
classGameRole:#定义主角类#name名字,ad攻击力,hp血量def__init__(self,name,ad,hp):
self.name = name
self.ad = ad
self.hp = hp
defarmament_weapon(self,wea):#装备
self.wea = wea
classWeapon:#武器类def__init__(self,name,ad):
self.name = name
self.ad = ad
deffight(self,p1,p2):
p2.hp = p2.hp - self.ad
print("{}用{}打了{},{}掉了{}血,还剩{}血".format(p1.name,self.name,p2.name,p2.name,self.ad,p2.hp))#p1,p2,实例化GameRole的对象
p1 = GameRole('盖伦',20,500)
p2 = GameRole('亚索',50,200)#三板斧,屠龙宝刀是武器类的对象
axe = Weapon('三板斧',60)
broadsword = Weapon('屠龙宝刀',10)#p1调用装备这个方法,将三板斧装备给p1,作为p1的属性,注意,三板斧也是武器类的对象,这就叫组合
p1.armament_weapon(axe)
p1.wea.fight(p1,p2)
Como se muestra en la figura, p1 llama al método del equipo, y pasa el objeto de tres hachas en la clase de arma como un atributo al método del equipo, y ax se convierte en el atributo wea, que se le da a p1.