【问题标题】:Call a function in python, getting '(function) is not defined'? [duplicate]在python中调用一个函数,得到'(函数)没有定义'? [复制]
【发布时间】:2013-02-27 18:24:15
【问题描述】:

我最近开始学习 Python,这里有一些代码。

...
workout = input("Work out if you won?")

if workout == "y":
    ballone()
elif workout == "n":
    print("Okay.")
    sys.exit("Not working out if you won")
else:
    sys.exit("Could not understand")

##Ball one
def ballone():
...

问题是调用'ballone'。你可以看到它已经定义好并且在命令行调用时可以完美运行(ballone())

有什么想法吗?我已经搜遍了网络,但似乎找不到任何可以帮助我的东西。如果需要发布更多代码,请告诉我:)

【问题讨论】:

    标签: python function


    【解决方案1】:

    将函数定义移动到 使用它的行之前。

    def ballone():
        # ...
    
    if workout == "y":
        ballone()
    elif workout == "n":
        print("Okay.")
        sys.exit("Not working out if you won")
    else:
        sys.exit("Could not understand")
    

    函数存储在标识符(变量)中,就像您的 workout 值一样。如果不先定义,Python怎么知道后面会定义呢?

    【讨论】:

    • 通常这是通过将主逻辑放在一个函数中并在模块底部调用它来完成的,通常由if __name__ == '__main__':保护。
    • @StevenRumbalski:__name__ 测试不会保护您免受此错误的影响。如果你在模块的顶部这样做,你仍然会遇到同样的问题。
    • 没错,但我确实是这样限定的。
    • @StevenRumbalski:你做到了。
    • 现在看来真的很明显了! :/我有PHP,HTML,CSS,jQuery等方面的经验......感谢其他答案:D&因为如此之快。我曾经使用 Yahoo Answers 来回答这类问题,但现在这是我的家;):D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-01
    • 1970-01-01
    • 2021-06-29
    • 2014-12-30
    • 2022-11-01
    • 1970-01-01
    • 2018-07-07
    相关资源
    最近更新 更多