嗨,我的学校正在用python做一个RPG项目,我遇到了一个问题,我定义了自己的函数,需要在另一个函数中调用它们中的一个,但它不起作用。以下代码为例:

from characters1 import *

def printmana(typeofenemy):
    print typeofenemy.mana


def printmany(typeofenemy):
    print typeofenemy.damage
    print typeofenemy.health
    option = raw_input("Type something ")
    if option == 1:
        printmana(typeofenemy)

printmany(Goblin)


当我打电话给printmany(Goblin)时,一切正常,直到我键入1,在这里我希望它可以调用printmana(Goblin)并打印Goblin.mana,但事实并非如此。但是,当我分别给printmana(Goblin)打电话时,它的工作原理绝对不错。我也试过这个:

from characters1 import *

def printmana(typeofenemy):
    return (typeofenemy.mana)


def printmany(typeofenemy):
    print typeofenemy.damage
    print typeofenemy.health
    option = raw_input("Type something ")
    if option == 1:
        print (printmana(typeofenemy))

printmana(Goblin)


我以为我将printmana中的打印更改为return,并在第二个函数中调用print printmana(Goblin),但是当我键入1时它仍然不起作用。一定有些事情我还不了解python函数的性质,所以有人可以解释一下为什么我的示例代码不起作用吗?谢谢!

最佳答案

您的麻烦在于,您正在将raw_input(字符串)的输出与整数进行比较。请尝试以下方法之一:

if option == "1":
    ...


要么

if int(option) == 1:
    ...

09-17 13:14