13 AĞUSTOS 2011, CUMARTESİ
Python ValueError: paketten çok fazla değer
Bu kod bir özel durum alıyorum:
class Transaction:
def __init__ (self):
self.materials = {}
def add_material (self, m):
self.materials[m.type m.purity] = m
def serialize (self):
ser_str = 'transaction_start\n'
for k, m in self.materials:
ser_str = m.serialize ()
sert = 'transaction_end\n'
return ser_str
for
hat bir istisna atma. m
s Material
nesnelerdir. Herkes herhangi bir fikir neden?
CEVAP
13 AĞUSTOS 2011, CUMARTESİ
self.materials
dict
ve varsayılan olarak sadece anahtarları dizeleri olan) yineleme.
self.materials
ikiden fazla tuş vardır beri*, "k, m
", dolayısıylaValueError
exception ortaya çıkar. tuple
içine açmak olamaz
Python 2'de.xanahtarları ve değerleri üzerinde yineleme (tuple
bu"k, m
"), biz kullanmak self.materials.iteritems()
.
Anahtarı zaten atıyorsun beri ancak, sadece sözlüğün değerleri üzerinde yineleme yapabilirsiniz:
for m in self.materials.itervalues():
Python 3'te.x, dict.values()
tercih dictionary view object verir):
for m in self.materials.values():
Bunu Paylaş:
Nasıl Python ile birden fazla değer ge...
JavaScript birden fazla değer döndürme...
's re Python kullanmaya değer mi....
Nasıl açık birden fazla dosya "Py...
Python bir listeden bir değer her yere...