Python,在类中定义全局变量,并为主脚本导入这个类,但全局变量没有定义



我在一个特定的文件夹下有一个basic.py文件,它定义了一个类:

class test_function:
def loop_unit(self,str):
global test_list
test_list.append(str)

我有另一个main.py,它有以下代码

from folder import basic
test_list=[]
object=basic.test_function()
object.loop_unit('teststr')
print(test_list)

它会给出一个错误,说

name 'test_list'没有定义(它trackback to test_list.append(str))我实际上在函数中定义了全局变量,我在主代码的开头定义了它,为什么它仍然说这是未定义的?

您定义了main.test_list;test_function.loop_unit想要basic.test_list

from folder import basic
basic.test_list = []
object = basic.test_function()
object.loop_unit('teststr')
print(basic.test_list)

尝试在您的类定义中这样做:

class test_function:
def __init__(self):
self.test_list = []
def loop_unit(self,str):
sel.test_list.append(str)
from folder import basic
#test_list=[]  --remove this line
object=basic.test_function()
object.loop_unit('teststr')
#print(test_list) ---remove this line but add this:
print(object.test_list)

试着告诉我它是否有效。