SORU
26 EKİM 2010, Salı


Nasıl bir kapsayıcı nesnesi (Python) __iter__(self) uygulamak için

Özel bir kapsayıcı nesnesi yazdım.

this page göre benim nesne bu yöntemi uygulamak istiyorum:

__iter__(self)

Ancak, Python başvuru kılavuzu Iterator Types için bağlantıyı takip üzerine örnekler kendi nasıl verilir yok.

Birisi bunun nasıl yapılacağını gösteren bir parçacık (ya da bir kaynak bağlantısı), gönderebilir miyim?

[Düzenle]

Yazıyorum kapsayıcı bir harita (benzersiz anahtarları saklar değerleri yani). dicts böyle yineledi

k, mydict v.() öğeleri

Bu durumda iki unsur (bir demet?) geri dönmek lazım yineleyici. Böyle bir yineleyici (kibarca sağlanan çeşitli yanıtlar rağmen) nasıl hala belli değil. Biri gibi göster kapsayıcı bir nesne için bir yineleyici nasıl uygulanacağı konusunda biraz daha ışık tutacak mısınız? (dict gibi davranan özel bir sınıf yani)?

CEVAP
26 EKİM 2010, Salı


Ben normalde jeneratör bir fonksiyon kullanmak istiyorsunuz. Her zaman bir yield deyimi kullanın, sıra bir öğe ekleyecektir.

Aşağıdaki beş, ve sonra some_list her öğe döndüren bir yineleyici oluşturur.

def __iter__(self):
   yield 5
   for x in some_list:
      yield x

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Andrey Menshikov

    Andrey Mensh

    28 Ocak 2012
  • finalcall07

    finalcall07

    11 NİSAN 2008
  • Sparta Spartanutul

    Sparta Spart

    18 HAZİRAN 2013