代码之家  ›  专栏  ›  技术社区  ›  syam

从另一个文件中的函数全局修改变量

  •  0
  • syam  · 技术社区  · 7 年前

    我的情况是 我希望主函数获得相同变量的更新值。。

     file name: kkk.py
     from junk import *
     a={1:2,3:4}
     test(a)
     print a ---> I want this to get modified from test() defined in the second file
     filename:junk.py
     from kkk import a
     import time
    
     def test(a):
     while(True):
    
        print 'inside the infinite loop'
        a={999:100}
    

    我希望a的修改值反映在kkk中。打印时的py

    上面的代码向我抛出了一个错误,即测试(a)未在kkk中定义。虽然我正确导入了test()。

    有人能帮我吗?

    2 回复  |  直到 7 年前
        1
  •  2
  •   Nirmi    7 年前

    它不工作,因为循环导入两个文件相互导入。

    kkk。py公司

    from junk import *
    import common
    
    print common.a
    test(common.a)
    print common.a
    

    废旧物品py公司

    import common
    import time
    
    def test(a):
            while(True):
                    print 'inside the infinite loop'
                    common.a={999:100}
                    break
    

    a={1:2,3:4}
    

    {1: 2, 3: 4}
    inside the infinite loop
    {999: 100}
    

    注意:我添加了break-in while循环来检查结果。

        2
  •  -2
  •   Max    7 年前

    尝试修改全局变量,如下所示

    globals()['a'] = 'Required value'