我有一个全局列表,似乎它不会更新声明的文件中的列表。我看到了几个类似于我的问题的问题,可以用来解决问题。但是我试图理解为什么在我的情况下它不起作用。

HelloWorld.py

import TestFile

store_val = ["10", "20"]

def main():
    store_val.append("30")
    print store_val
    TestFile.list_val()

if __name__ == '__main__':
    main()


TestFile.py

import HelloWorld

def list_val():
    HelloWorld.store_val.append("40")
    print "Store Value : ", HelloWorld.store_val
    HelloWorld.store_val.append("60")
    print "Updated Value : ", HelloWorld.store_val


我看到的问题是我可以在TestFile.py的列表中添加一个值,但是即使在HelloWorld.py中声明了一个值,也似乎无法将其添加到列表中。解决此问题的最佳方法是什么,以便我可以从HelloWorld.py附加值

运行HelloWorld的结果

['10', '20', '30']
Store Value :  ['10', '20', '40']
Updated Value :  ['10', '20', '40', '60']

最佳答案

应该是这样的。在您的情况下,仅从TestFile.py中的HelloWorld导入了store_val列表和主函数,但未在TestFile.py中运行主函数

HelloWorld.py

import TestFile

store_val = ["10", "20"]

def main(n=1):
    store_val.append("30")
    print store_val
    if n>0:
        TestFile.list_val(n)

if __name__ == '__main__':
    main()


TestFile.py
导入HelloWorld

def list_val(n):
    if (n>=0):
        HelloWorld.main(n-1)

    HelloWorld.store_val.append("40")
    print "Store Value : ", HelloWorld.store_val
    HelloWorld.store_val.append("60")
    print "Updated Value : ", HelloWorld.store_val

if __name__ == '__main__':
    list_val()


运行代码:

python HelloWorld.py
['10', '20', '30']
['10', '20', '30']
Store Value :  ['10', '20', '30', '40']
Updated Value :  ['10', '20', '30', '40', '60']

关于python - Python全局列表未更新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33824610/

10-13 06:43