一、组合概念
一个类的对象作为另外一个类对象的属性
第一个例子:
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