Python ValueError: paketten çok fazla değer | Netgez.com
SORU
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. ms 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ÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • 0TACTICAL0HIPPY0

    0TACTICAL0HI

    30 EYLÃœL 2012
  • 24 Канал

    24 КанаÐ

    5 ÅžUBAT 2006
  • Dirty Loops

    Dirty Loops

    21 Mayıs 2007