Python:在循环中使用局部/全局变量引用/赋值

标签 python loops variables global local

我有以下循环结构和问题,由于 UnboundLocalError,无法在这段代码中递增变量:

while True:
    def function_1():
        def function_2():
            x += 1
            print(x)
        function_2()
    function_1()

我现在的解决方案是这个:

x = 0
while True:
    def function_1():
        def function_2():
            global x
            x += 1
            print(x)
        function_2()
    function_1()

有没有不用global的解决方案?

最佳答案

使用可变值。

x = []
x.append(0)
while True:
    def function_1():
        def function_2():
            x[0]= x[0]+1
            print x[0]
        function_2()
    function_1()

关于Python:在循环中使用局部/全局变量引用/赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42385064/

相关文章:

Python 列表理解太慢

python - 媒体播放/暂停模拟

c++ - 这个变量赋值有什么不同?

python - 在 python 循环中使用迭代器作为变量名

loops - Rust 中迭代器的嵌套循环

c++ - 使用 C++ 在编译时操作变量

javascript - 获取表格中的行号并将其保存到php变量中

python - CentOS安装后看不到python3.8

python - 无法使用 Python 3.6 在 Mac 上安装 python-levenshtein 包

javascript - 尝试将 JavaScript 中的 for 循环更改为过滤方法单行