大家好, 我一直在尝试制作一个使用字典来构造一种表格的类,但是发生了一些非常奇怪的事情。这是我的代码
class dbase:
def __init__(self):
self.rows = {}
self.cols = {}
def addrow(self, name):
self.rows[name] = self.cols
def addcol(self, name):
for x in self.rows:
self.rows[x][name] = None
def printit(self):
for x in self.rows:
print x, self.rows[x]
a = dbase()
a.addrow("coke")
a.addcol("price")
a.printit()
a.addrow("sprite")
a.printit()
好吧,这就是奇怪的事情。我的程序将 sprite 行打印为具有带有“价格”值的内部字典,但在我的程序中我没有说 self.cols["price"] = None 那么 sprite 的 addrow 函数是如何将这个内部字典放入其中的呢? 感谢您的帮助
请您参考如下方法:
哇。这是我一段时间以来看到的最困惑的代码。您意识到,当您添加一行时,您只是添加了与其他每一列相同的字典。
def __init__(self):
self.rows = {}
self.cols = {}
def addrow(self, name):
self.rows[name] = self.cols
我想你的意思是
def addrow(self, name):
self.rows[name] = {}
