从Python中的另一个类调用方法

时间:2013-12-04 23:31:11

标签: python class

我的当前文件中有一个名为Rabbits的类(名为rabbits.py)。 在Rabbits中,我有一个名为carrots()的方法。

在另一个文件中,我有一个名为Whales的类(在名为whales.py的文件中)。 在Whales我有一个名为swimming()的方法。

如果我正在尝试在carrots()中打印包含swimming()返回的字符串的字符串;我该怎么办?会是print(str(self.whales.swimming())吗?

我一直收到以下错误:

AttributeError: 'str' object has no attribute 'name'

1 个答案:

答案 0 :(得分:0)

你的战士有武器,因此可以调用武器的方法:

# weapon.py
class Weapon:
    def __init__(self, name, dmg):
        self.name = name
        self.dmg  = dmg

    def attack(self, target):
        target.health -= self.dmg

# fighter.py
class Fighter:
    def __init__(self, name, weapon=None):
        self.name   = name
        self.weapon = weapon

    def attack(self, target):
        if self.weapon is None:
            # punch him
            target.health -= 2
        else:
            self.weapon.attack(target)