Skip to main content
 首页 » 编程设计

python之无法解释的python dict问题

2025年05月04日14wayfarer

大家好, 我一直在尝试制作一个使用字典来构造一种表格的类,但是发生了一些非常奇怪的事情。这是我的代码

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] = {}