博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面向对象中组合的用法
阅读量:5939 次
发布时间:2019-06-19

本文共 1884 字,大约阅读时间需要 6 分钟。

# 组合  一个类对象的属性值是另外一个类的对象# 狗class Dog:    def __init__(self, name, aggr, hp, kind):        self.name = name        self.aggr = aggr        self.hp = hp        self.kind = kind    def bite(self, persion):        persion.hp += self.aggr# 人class Persion:    def __init__(self, name, aggr, hp, sex):        self.name = name        self.aggr = aggr        self.hp = hp        self.sex = sex        self.money = 0    def attack(self, dog):        dog.hp -= self.aggr    def get_weapon(self, weapon):   # 获得装备        if self.money >= weapon.price:            self.money -= weapon.price            # 对象没有这个属性值则会创建一个weapon属性值            self.weapon = weapon    # 一个对象的属性值是另外一个类的对象   组合            self.aggr += weapon.aggr        else:            print('金币不足,请获取足够金币')# 武器class Weapon:    def __init__(self, name, aggr, njd, price):        self.name = name        self.aggr = aggr        self.njd = njd        self.price = price    def hand18(self, persion):  # 武器技能        if self.njd > 0:            persion.hp -= self.aggr * 2            self.njd -= 1alex = Persion('alex', 0.5, 100, '不详')jin = Dog('金老板', 100, 500, '不详')w = Weapon('打狗棒', 100, 3, 998)# alex充了1000金币alex.money += 1000# alex买了打狗棒alex.get_weapon(w)print(alex.weapon)print(alex.aggr)# alex攻击了jinalex.attack(jin)print(jin.hp)# alex使用武器的技能攻击jinalex.weapon.hand18(jin)print(jin.hp)# 上面的例子其实就默默的用到了组合# 组合:一个对象的属性值是另外一个类的对象    # alex.weapon 是 Weapon类的对象# 组合练习(谈到组合,就不只是一个类去解决问题)# 创建一个老师类# 老师有生日# 生日可以是一个类class Birthday:    def __init__(self, year, mon, day):        self.year = year        self.mon = mon        self.day = dayclass Teacher:    def __init__(self, name, age, sex):        self.name = name        self.age = age        self.sex = sex        self.birthday = Birthday(1993, 8, 1)    # 组合用法一个对象的属性值是另外一个类的对象#t = Teacher('why', 23, 'boy')print(t.birthday.year)# 大作业,校园管理系统

 

转载于:https://www.cnblogs.com/whylinux/p/9736706.html

你可能感兴趣的文章
nessus 本地扫描(一)
查看>>
linux服务器磁盘陈列
查看>>
交换机配置模式
查看>>
python----tcp/ip http
查看>>
我的友情链接
查看>>
第一本docker书学习笔记1-3章
查看>>
一個典型僵尸網絡淺析
查看>>
vmware克隆Centos6.4虚拟机网卡无法启动问题
查看>>
dba学习
查看>>
asterisk配置
查看>>
GA操作步骤和技巧(二)——用户行为分析
查看>>
shell中while循环里使用ssh的注意事项
查看>>
SHELL获取计算机外网ip的几种写法
查看>>
博客正在搬迁中
查看>>
触发器与存储过程的区别
查看>>
我的友情链接
查看>>
centos搭建supervisor
查看>>
linux日志分割
查看>>
Samba再报安全漏洞
查看>>
我的友情链接
查看>>