我有一个巨大的项目分成3个文件。我通常在另一个文件中使用来自一个文件的函数没有问题,但这次我不能这样做。而且,我不太明白为什么我在文件之间传递的一个列表在它退出函数后会消失。你知道吗
文件:设置.py
list1 = []
文件:全局.py
from settings import *
def foo(hey):
global list1
list1.append(hey)
文件:新建_代码.py
from settings import *
from globals import *
def cool_function():
global list1
list1 = []
hey = "you"
foo(hey)
print (list1)
cool_function()
问题是我的代码不能从globals.py
调用foo。我在foo有个缩进错误。即使解决了这个问题,在我正在处理的实际项目中,list1也会附加到settings.py
文件中,但在我返回cool\u函数后,它会返回为空。你知道吗
更新:即使删除new_code.py
文件中的list1 = []
,代码仍然无法从settings.py
调用函数foo。如果您想查看以下文件:
https://drive.google.com/file/d/1ZiTwl-dopfzcrra1kbcbchh8c9ainfli/view?usp=共享>;文件
更新:我将globals.py
文件更改为
从设置导入* def foo(嘿): list1.append(嘿)
以及new_code.py
文件
from settings import *
from globals import *
global list1
def cool_function():
list1 = []
hey = "you"
foo(hey)
print (list1)
cool_function()
这解决了问题,但我不明白为什么。你知道吗
2个坏主意:
globals
作为模块名,globals
是内置函数的名称。你知道吗global
语句。你知道吗如果您想保留一个全局列表对象,一个好的做法是将其包装到一个对象中。让它成为ref类型变量。你知道吗
更好的练习:
在设置.py地址:
在你的新_代码.py地址:
在
new_code.py
中,将globals list1
从cool_funtion
移动到上方cool-function
如果出现缩进错误,应该使用文本编辑器的“呈现空白”功能来查找缩进问题
相关问题 更多 >
编程相关推荐