ここにありますが、私の単純なクラスです。後で私のコードで私はこのようなループに一般的な機能を使用します。Pythonのクラス()
for key, val in row.items()
私はそれを変更したくない...ので、私の質問は、私はクラスでその項目()関数をシミュレートしないか、あります既存のforループでシームレスに動作するようにします。
ここにありますが、私の単純なクラスです。後で私のコードで私はこのようなループに一般的な機能を使用します。Pythonのクラス()
for key, val in row.items()
私はそれを変更したくない...ので、私の質問は、私はクラスでその項目()関数をシミュレートしないか、あります既存のforループでシームレスに動作するようにします。
あなたは、単に同じキーと値のペアを生成することによって、前dict.items()
行動を模倣items
メソッドを実装することができます
class row(object):
# ...
def items(self):
# this is the iterator behaviour of 'items' (Py3) or 'iteritems' (Py2)
yield 'tan_id', self.tan_id
yield 'proc_name', self.proc_name
# for the Py2 items behaviour, put these pairs into a list
# and return the list
# Or, more generally:
def items(self):
for slot in self.__slots__:
yield slot, getattr(self, slot)
2番目のオプションは、20個のクラスが同様の構造を持ちますが、ほとんどが20-50個の変数が定義されているため、動作すれば(テストする必要があります)理想的です。ありがとう。 – gunslingor
あなたが表示されている行の例えば前に 'items'でしたか? – schwobaseggl
行= {"tan_id":tan_id、 "proc_name":proc_name} – gunslingor
あなたは 'namedtuple'を使っていたはずのように@gunslingorは聞こえます。 –