Python, 在class 中定义全局变量并为主脚本导入此class,但未定义该全局变量
Python, define global variable in a class and import this class for main script,but that global variable is not defined
我在特定文件夹下有一个 basic.py 文件,它定义了 class:
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' 未定义(引用 test_list.append(str) )
我其实在函数里定义了全局变量,而且我在主代码的开头定义了,为什么还是说this is not defined?
您定义了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 定义中这样做:
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)
试试看是否有效。
我在特定文件夹下有一个 basic.py 文件,它定义了 class:
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' 未定义(引用 test_list.append(str) ) 我其实在函数里定义了全局变量,而且我在主代码的开头定义了,为什么还是说this is not defined?
您定义了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 定义中这样做:
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)
试试看是否有效。