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