如何处理Python中函数声明顺序不当引发的问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计849个文字,预计阅读时间需要4分钟。
在Python中,如果将函数定义写在调用下方,运行时会出现错误。例如下面的代码:
pythonfoo()
def foo(): print(hello)
执行时会报错:`NameError: name 'foo' is not defined`。此时需要将`foo()`调用代码放到函数定义上方。
在 Python 中如果把函数定义写在调用的下方可能会出错,例如下面的代码
foo() def foo(): print("hello")
执行时会报出错误
NameError: name 'foo' is not defined
这时候要把 foo() 调用代码放到该函数的声明后面
def foo(): print("hello") foo()
这样执行就一切正常了。这仿佛像是 C 语言中的函数调用需要提前声明一般,例如在 C 语言中要调用后头的定义的函数要写成
void foo(); int main() { foo(); } void foo() { printf("Hello"); }
实际上 Python 中并不存在函数提前声明一说,也不能像 Java 那样函数可以写在任意位置,因为 Java 是编译型的语言,Python 是解释型的。
而且也不是一定要求被调用的函数一定要在源代码层面上定义在调用者前方。
本文共计849个文字,预计阅读时间需要4分钟。
在Python中,如果将函数定义写在调用下方,运行时会出现错误。例如下面的代码:
pythonfoo()
def foo(): print(hello)
执行时会报错:`NameError: name 'foo' is not defined`。此时需要将`foo()`调用代码放到函数定义上方。
在 Python 中如果把函数定义写在调用的下方可能会出错,例如下面的代码
foo() def foo(): print("hello")
执行时会报出错误
NameError: name 'foo' is not defined
这时候要把 foo() 调用代码放到该函数的声明后面
def foo(): print("hello") foo()
这样执行就一切正常了。这仿佛像是 C 语言中的函数调用需要提前声明一般,例如在 C 语言中要调用后头的定义的函数要写成
void foo(); int main() { foo(); } void foo() { printf("Hello"); }
实际上 Python 中并不存在函数提前声明一说,也不能像 Java 那样函数可以写在任意位置,因为 Java 是编译型的语言,Python 是解释型的。
而且也不是一定要求被调用的函数一定要在源代码层面上定义在调用者前方。

