sosadwhy 2024-09-22 00:09 采纳率: 0%
浏览 5

初学者关于Python的全局变量

img


为什么这两个函数都定义为全局变量,但运行结果中一个没有被改变,一个被改变了?

  • 写回答

4条回答 默认 最新

  • 一轮明月照丘壑 2024-09-22 00:10
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    从你给出的代码片段来看,可能存在一些格式和逻辑错误,并且可能存在混淆。我会尝试根据描述来解释全局变量的行为,但请注意由于代码格式的问题,可能存在一些误解。

    首先,关于全局变量,它们是在函数外部定义的变量,可以被函数内部通过 global 关键字访问和修改。如果在函数内部不声明 global 关键字而尝试修改全局变量,Python 会将其视为局部变量。

    关于你提到的两个函数,我假设你指的是类似以下的代码:

    # 图1的代码片段
    ls = []  # 全局变量 ls
    
    def func(a):
        global ls  # 引用全局变量 ls
        ls.append(a)  # 修改全局变量 ls
        return ls  # 返回修改后的全局变量 ls
    
    # 测试代码
    print(ls)  # 输出空列表 []
    func(3)  # 执行函数,将 3 添加到全局变量 ls 中
    print(ls)  # 输出 [3],因为全局变量 ls 被修改了
    

    在这个例子中,func 函数通过 global 关键字引用了全局变量 ls 并进行了修改。因此,当你调用 print(ls) 时,会看到列表被修改了。

    然而,对于你给出的第二个函数示例(似乎存在格式错误和不完整的代码),如果正确地定义了全局变量并在函数内部正确地使用 global 关键字进行修改,那么全局变量应该会被修改。如果全局变量没有被正确修改,可能是由于以下几个原因:

    1. 代码格式错误或不完整,导致语法错误。
    2. 可能没有正确地在函数内部使用 global 关键字。
    3. 可能在其他地方重置了全局变量的值。

    为了解决你的问题,请确保你的代码格式正确,并且正确地使用了 global 关键字来引用和修改全局变量。如果仍然遇到问题,请提供完整的代码示例,以便更好地帮助你解决问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 9月22日