有人可以帮我解决python列表问题。我创建了一个全局变量和全局列表。其他方法更新了全局值。全球价值更新很好,但全球清单给了我一个错误。
class Practice(object):
foo = []
var = 0;
def __updateVaribale(self):
global var
var = 9;
def __updateList(self):
global foo
foo.append("updateList 1")
def main(self):
self.__updateVaribale();
global var
print(var)
self.__updateList()
global foo
print(foo)
Obj = Practice();
Obj.main();
输出
9
Traceback (most recent call last):
File "Python Test\src\Practice.py", line 31, in <module>
Obj.main();
File "Python Test\src\Practice.py", line 26, in main
self.__updateList()
File "Python Test\src\Practice.py", line 18, in __updateList
foo.append("updateList 1")
NameError: name 'foo' is not defined
答案 0 :(得分:2)
您已经创建了一个类,因此该类的变量需要具有self前缀,以便在实例化'Obj'对象时,其变量和方法属于它(引用绑定对象)。
除了为每个变量(属性)添加self之外,还需要在类中添加构造函数。
见下文:
class Practice():
def __init__(self):
self.foo = []
self.var = 0;
def __updateVaribale(self):
self.var = 9;
def __updateList(self):
self.foo.append("updateList 1")
def main(self):
self.__updateVaribale();
print(self.var)
self.__updateList()
print(self.foo)
Obj = Practice()
Obj.main()