【问题标题】:Modifying global variable from within function that have the same parameter name in python在python中从具有相同参数名称的函数中修改全局变量
【发布时间】:2016-10-04 11:31:42
【问题描述】:

我有这个功能:

def applychange(L):
    result=3+2
    L=[4,5,6]
    return result
L = [1,2,3]
print(applychange(L))
print(L)

结果是:

5
[1, 2, 3]

如何将L 变量更改为新值以获得此结果:

5
[4, 5, 6]

【问题讨论】:

    标签: function python-3.x global-variables


    【解决方案1】:

    如果您的目标是将L 修改为全局变量,则需要将其声明为全局变量。
    要使您的代码按预期运行,请在函数中的 result 赋值之后插入 global L
    此外,无需将L 传递给函数即可修改L

    def applychange():
        result = 3 + 2
        global L
        L = [4, 5, 6]
        return result
    
    L = [1, 2, 3]
    print(applychange())
    print(L)
    

    您以这种方式编写的代码将产生预期的输出:

    5
    [4, 5, 6]
    

    【讨论】:

      【解决方案2】:

      问题是你覆盖了变量L,而不是修改它。你可以使用

      L[:] = [4,5,6]
      

      而不是

      L = [4,5,6]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-06-28
        • 2016-06-28
        • 2014-11-17
        • 2020-06-28
        • 2022-10-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多