在Python中,函数必须在调用之前定义。如果你试图在定义一个函数之前调用它,Python会抛出一个NameError
,告诉你这个函数尚未定义。
例如:
# 错误的顺序
my_function() # 这会引发 NameError,因为 my_function 还未定义def my_function():print("Hello, world!")
你需要先定义函数,然后再调用它:
# 正确的顺序
def my_function():print("Hello, world!")my_function() # 输出:Hello, world!
然而,对于Python的主函数(即当你的Python脚本被直接运行,而不是作为模块导入时执行的代码块),通常会放在一个名为__main__
的特殊块中。在这种情况下,你可以在__main__
块之前定义你的函数,即使__main__
块包含对这些函数的调用。例如:
def my_function():print("Hello, world!")if __name__ == "__main__":my_function() # 输出:Hello, world!
在上述代码中,my_function
在__main__
块之前被定义,然后在__main__
块中被调用。这是一个常见的模式,可以确保当你的Python脚本被作为模块导入,而不是直接运行时,不会执行不需要的代码。