Python 3函数在代码的另一部分运行之前没有定义?
我刚刚开始用python编程,并且一直在寻找简单的程序来开始更好的理解 我正忙着写一个石头剪刀布文本游戏,为了找出游戏的赢家/输家等等,我创建了一个函数。有一段时间,当我运行我的程序时,当调用函数时,我不断得到一个错误,那就是我的函数没有定义。我的函数低于我的初始代码 然而,出于某种原因,我将我的函数移到了全局变量声明下代码的顶部,现在我的函数可以完美地执行 为什么会这样?有没有一种方法可以让我的函数位于我的主代码之下,但不会因为我的函数未定义而导致错误。我是否只需要先声明我的函数,然后再调用它,如果是这样,我将如何声明一个空函数 我很想了解,所以任何帮助都将不胜感激 为什么会这样 因为这就是Python的工作方式——模块或脚本顶层的所有代码都是按顺序执行的,所以函数只能在执行Python 3函数在代码的另一部分运行之前没有定义?,python,python-3.x,function,Python,Python 3.x,Function,我刚刚开始用python编程,并且一直在寻找简单的程序来开始更好的理解 我正忙着写一个石头剪刀布文本游戏,为了找出游戏的赢家/输家等等,我创建了一个函数。有一段时间,当我运行我的程序时,当调用函数时,我不断得到一个错误,那就是我的函数没有定义。我的函数低于我的初始代码 然而,出于某种原因,我将我的函数移到了全局变量声明下代码的顶部,现在我的函数可以完美地执行 为什么会这样?有没有一种方法可以让我的函数位于我的主代码之下,但不会因为我的函数未定义而导致错误。我是否只需要先声明我的函数,然后再调用它
def
语句之后定义
您必须了解,在Python中,一切都是对象,包括函数、类等,因此def
语句主要是一种语法糖,它创建函数对象(从def
块)并将其绑定到函数名,如果函数只是模块或脚本中的另一个全局变量,那么在定义变量之前,您不会期望能够使用它,对吗
有没有一种方法可以让我的函数位于我的主代码之下,但不会因为我的函数未定义而导致错误
是的,只需将“主代码”放在函数中,并在脚本末尾调用此函数:
import something
import another thing
def main():
bar = foo()
print("the answer is {}".format(bar))
def foo():
return 42
# this makes sure the main function will only be executed
# when using your .py file as a script, not when importing
# it as a module.
if __name__ == "__main__":
main()
在调用函数之前,必须先定义函数。您必须定义函数,然后才能在程序中的任何位置调用函数
Python就是这样工作的,所有的东西都是按顺序执行的 您试图运行的代码在哪里?请将其添加到questionFunctions中,在定义函数之前无法调用它们。脚本通常有一个调用其他函数的
main
函数,而对main()
的调用在脚本的末尾,因此在定义完所有内容后就可以调用。非常感谢您的解释,我非常感谢您花时间简单地解释它。