python面向对象的组合和继承以及多继承
一、组合概念
一个类的对象作为另外一个类对象的属性
第一个例子:
class Weapon: def prick(self, obj): # 这是该装备的主动技能,扎死对方 obj.life_value -= 500 # 假设攻击力是500 class Person: # 定义一个人类 role = 'person' # 人的角色属性都是人 def __init__(self, name): self.name = name # 每一个角色都有自己的昵称; self.weapon = Weapon() # 给角色绑定一个武器; egg = Person('egon') egg.weapon.prick() # egg组合了一个武器的对象,可以直接 egg.weapon 来使用组合类中的所有方法 第二个例子计算圆环的面积
from math import pi class Circle: def __init__(self, r): self.r = r def area(self): return pi * self.r ** 2 # 求园的面积 def perimeter(self): return self.r * pi * 2 # 求园的周长 class Ring: def __init__(self, outside_r, inside_r): self.out_circle = Circle(outside_r) self.in_circle = Circle(inside_r) def area(self): return self.out_circle.area() - self.in_circle.area()