gpt4 book ai didi

python - 如果 python 运行文件 "line after line",它如何在定义之前使用函数?

转载 作者:太空宇宙 更新时间:2023-11-04 11:06:16 26 4
gpt4 key购买 nike

我目前正在学习 python,在学习了 Java 之后,现在我知道 java 首先编译整个文件然后运行它,据我所知,在 python 中,它在“逐行”编译程序的同时运行程序。

所以我不明白的是如何在定义函数之前调用它。我习惯于从 Java 开始在需要它们的方法之后编写我所有的“帮助方法”,我认为这样更容易阅读。所以我尝试在 python 中做同样的事情,并且成功了。为什么?

最佳答案

这里的一个重要指定是,创建函数的顺序并不重要,重要的是函数调用何时完成。 p>

以下面的代码为例:

def add_one(new):
return my_add(new, 1)

def my_add(x, y):
return x + y

my_var = 2
print("The value of my_var is: {}".format(my_var))
my_var = add_one(my_var)
print("The value of my_var is: {}".format(my_var))

它产生

The value of my_var is: 2

The value of my_var is: 3

发生这种情况是因为在调用 add_one 函数时,两个函数都已经存在。但是,如果在定义 my_add 之前尝试调用 add_one...

def add_one(new):
return my_add(new, 1)

my_var = 2
print("The value of my_var is: {}".format(my_var))
my_var = add_one(my_var)
print("The value of my_var is: {}".format(my_var))

def my_add(x, y):
return x + y

我们得到:

The value of my_var is: 2
Traceback (most recent call last):
File "c:\Users\wundermahn\Desktop\Stack.py", line 6, in <module>
my_var = add_one(my_var)
File "c:\Users\J39304\Desktop\Stack.py", line 2, in add_one
return my_add(new, 1)
NameError: name 'my_add' is not defined

参见 Does the order of functions in a Python script matter?更多

关于python - 如果 python 运行文件 "line after line",它如何在定义之前使用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59382335/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com