我有以下代码:
class PWA_Parse():
include = []
def appendInclude(self, element):
self.include.append(element)
def printMemory(self):
print "Class location", hex(id(self)), "List location:", hex(id(self.include))
a = PWA_Parse()
b = PWA_Parse()
a.appendInclude(5)
a.printMemory()
b.printMemory()
两者的列表内存地址相同:
Class location 0x29e9788 List location: 0x29e95d0
Class location 0x29e97b0 List location: 0x29e95d0
我如何在类定义中创建一个列表,以便在实例化时获得两个单独的列表? (提示:我已经尝试过使用list()了)
答案 0 :(得分:2)
通过将include
声明为类变量,可以使该类的所有实例共享同一变量include
。
相反,您应该通过include
方法初始化__init__()
作为实例变量:
class PWA_Parse():
def __init__(self):
self.include = []
答案 1 :(得分:1)
在__init__
方法中创建一个新列表,该列表在实例化后自动被调用。