我有一个全局列表,它似乎没有更新它声明的文件中的列表。我已经看到了几个与我的问题相似的问题,我可以使用它来解决我的问题。但我试图理解为什么它在我的情况下不起作用。
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']
答案 0 :(得分:1)
应该是这种方式。在您的情况下,只有store_val列表和main函数从TestFile.py中的HelloWorld导入,但主函数不在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']