gpt4 book ai didi

python - 从外部函数访问变量

转载 作者:太空狗 更新时间:2023-10-29 22:22:18 24 4
gpt4 key购买 nike

我是 Python 的新手,但对 C++ 比较有经验,这就是为什么下面的代码示例让我有些困惑。

def foo():
y = x
print y

x = 5
foo()

运行这段代码打印值 5。如何在 foo() 中知道变量 x 的值?上面的代码不会在 C++ 中运行,如果我们这样做的话:

#include <iostream>

int x = 5;
void foo()
{
std::cout << "x = " << x << std::endl;
}

int main()
{
foo();
return 0;
}

因为这里 x 是全局范围内的变量,它在 foo() 之前声明(和定义)。它在 Python 中工作是因为 x 被添加到全局符号表吗?

感谢您的帮助!

最佳答案

全局范围内的所有内容都可以从内部函数中看到以供阅读。事实就是如此:在 Python 中,指向变量的名称和指向函数的名称之间没有区别,因此如果这不起作用,您甚至无法调用函数。

但是如果你想修改 x,你需要 global 关键字。

至于为什么在函数之后定义变量时它起作用:Python 不会尝试在编译时解析引用,它会在调用函数时解析:因为 python 中的一切都是动态的,无法提前告知定义变量的时间。

关于python - 从外部函数访问变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26603628/

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