繁体   English   中英

如何从另一个人的类方法调用或引用实例属性

[英]How to call or refer to an instance attribute from another's class method

作为Python的初学者,我正在尝试创建一个简单的基于文本的游戏。 我想知道如何正确地指monster我的实例Monster类,从内scan ,我在我的定义方法Character类(这是甚至有可能?)。

class Monster:
    def __init__(self):
        self.HP = 5
        self.color = 'blue'


class Character:
    def scan(self):
        print("{} is {} and has {} HP.".format( monster.__name__, 
                                                monster.color, 
                                                monster.HP ))


class Game:
    def __init__(self):
        self.monster = Monster()
        self.player = Character()

        self.player.scan()

Game()

我读了很多书,尝试过getattr事情,但是没有任何运气。 我知道我可以将scan方法直接放在Game并使用self.monster.HPself.monster.color ,但是我真的很想避免这种情况。

欢迎任何帮助或批评,在此先感谢:)

您将显式传入怪物进行扫描:

class Character:
    def scan(self, monster):
        print("{} is {} and has {} HP.".format(
            monster.__name__, monster.color, monster.HP))

和:

self.player.scan(self.monster)

这样,您的代码也可以处理多个怪物。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM