【问题标题】:Unable to access the updated global variable's value无法访问更新后的全局变量的值
【发布时间】:2021-01-27 06:44:57
【问题描述】:

假设我有两个 Python 文件:

  1. abc.py:
from .config import *
update_a()
print_a() # prints 5
print(a)  # prints 2 rather than 5 even after calling update_a() and using global in update_a()
  1. config.py:
a = 2

def update_a():
    global a
    a = 5

def print_a():
    global a
    print(a) # prints 5

config.py 中的全局变量在从abc.py 访问时似乎没有更新的值。

【问题讨论】:

  • 使用globals() 来实现您想要实现的目标!

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


【解决方案1】:

当您执行导入说from .config import * 时,变量a 将作为本地范围导入。对a 的任何修改都将在abc.py 的范围内发生,而不是在config.py 的范围内,而对update_a()print_a() 的调用正在修改config.py 内的变量a

【讨论】:

    【解决方案2】:

    添加到乔的回答中,您可以使用以下代码实现您想要的:

    import config as config
    
    config.update_a()
    config.print_a() # prints 5
    
    # This will print the global variable in 'config.py'
    print(config.a)  # prints 5
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-17
      • 2014-04-08
      • 1970-01-01
      • 2020-01-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多