Python面向对象——跨类调用【3种方法】

情景1:小明请保洁打扫卫生

方法一:在实例方法中调用其他类

一次性

含义:小明出生了,请保洁员打扫卫生,每次打扫都换一个新的保洁员

class Person:
    def __init__(self,name = ""):
        self.name = name
    def invite(self):
        print(self.name,"请")
        clean_staff = CleaningStaff()
        clean_staff.sweep()

class CleaningStaff:
    def sweep(self):
        print("保洁员打扫卫生")

xiaoming = Person("小明")
xiaoming.invite()
# 输出结果:
# 小明 请
# 保洁员打扫卫生

方法二:在构造函数中调用其他类

永久

含义:小明出生了,并拥有一个为他服务一辈子的保洁员,每次都请这个保洁员打扫卫生

class Person: 
    def __init__(self,name = ""):
        self.name = name
        self.cleaner = CleaningStaff()
    def invite(self):
        print(self.name,"请")
        self.cleaner.sweep()

class CleaningStaff:
    def sweep(self):
        print("保洁员打扫卫生")

xiaoming = Person("小明")
xiaoming.invite()
# 输出结果:
# 小明 请
# 保洁员打扫卫生

方法三:实例方法参数调用其他类

随意】 

含义:小明出生了,请保洁员打扫卫生,由他自己决定是一直请一个保洁员,还是每次换一个,还是机器人……

class Person:
    def __init__(self,name = ""):
        self.name = name
    def invite(self,cleaner): # 传什么,就请什么打扫卫生
        print(self.name,"请")
        cleaner.sweep()

class CleaningStaff:
    def sweep(self):
        print("保洁员打扫卫生")

xiaoming = Person("小明")
cleaner = CleaningStaff()
xiaoming.invite(cleaner)
# 输出结果:
# 小明 请
# 保洁员打扫卫生

情景2:玩家攻击敌人,敌人受伤(头顶爆字)

方法三:实例方法参数调用其他类

应该是来什么敌人,打什么敌人。故我选择方法三

class Player:
    def __init__(self,role):
        self.role = role
    
    def attack(self,monster):
        print(self.role,"打",monster.name)
        monster.get_hurt()

class Enermy:
    def __init__(self,name):
        self.name = name
    def get_hurt(self):
        print(self.name,"血条-10000")

# 创建一个玩家对象
dj = Player("妲己")
# 创建一个怪兽对象
monster = Enermy("主宰")
dj.attack(monster)
# 输出结果:
# 妲己 打 主宰
# 主宰 血条-10000
  • 13
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值