にちょっとすべて、私はテーブルが、非常に奇妙な何かのようなものを構築するために辞書を使用するクラスが起こっされていることを確認しようとして .. HERESに私のコード原因不明のpythonの辞書の問題
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()
もの。私のプログラムはスプライト行を "価格"の値を持つ内側の辞書を持っているものとして印刷しますが、私のプログラムではどこにも書きません。self.cols ["price"] = None スプライトのaddrow関数は、 ? ありがとうございました
http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html#other-languages-have-variablesすべての 'self.rows [x]'は同じオブジェクト 'self .cols'。 – jfs
"私のプログラムではどこにいたのですか?' self.cols ["price"] = None' "はい、あります。 self.rows [x] [name] = None'はself.rows [x]が以前にself.colsに設定されているため正確に言います。 –
新しいスタイルのクラスを使用 – Ant