首页 新闻 会员 周边 捐助

python全局变量和局部变量的命名不能相同?

0
[已关闭问题] 关闭于 2025-11-30 14:45

同名时,局部变量会“遮蔽”(shadow)全局变量

在函数内部,如果你定义了一个与全局变量同名的局部变量,在该函数内,这个名字就指向局部变量,全局变量被暂时“隐藏”。

*Tesla*的主页 *Tesla* | 小虾三级 | 园豆:1188
提问于:2025-11-30 13:26
< >
分享
所有回答(1)
0
    • 在 func() 内部用 locals() 查看局部变量
    • 用 globals() 查看全局变量(包括函数外部的 a = "aaa"

    这样就能清晰看到两个作用域中同名变量 a 的不同值了!

  • def func():
        a = 3
        print("函数内 a =", a)
        print("局部变量表(locals):", locals())
        print("全局变量表(globals)中 'a' 的值:", globals()['a'])
    
    a = "aaa"
    func()
    print("全局 a =", a)
    print("全局变量表(顶层 globals):", list(globals().keys()))  # 只打印键名避免太长

    正确理解:同名时,局部变量会“遮蔽”(shadow)全局变量

*Tesla* | 园豆:1188 (小虾三级) | 2025-11-30 14:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册