SORU
27 Mart 2012, Salı


Python tam olarak ne'In yineleyici, iterable ve yineleme protokolleri?

En temel tanımları nelerdir"", "" ve "yineleme" Python? yineleyici iterable

Birden çok tanımları okudum ama tam anlamını hala idrak etmeyecek.

Birisi temel fikri olan yardım edebilir mi?

CEVAP
27 Mart 2012, Salı


İşte Python dersleri içinde kullandığım açıklama:

Bir İTERABLE

  • hiçbir şey bu döngü içinde olabilir (yani bir dize bir döngü veya dosya olabilir)
  • sağ tarafında görünen bir şey için döngü: for x in iterable: ...
  • iter() ile bir YİNELEYİCİ döndürür var diyebilirsin bir şey: iter(obj)
  • __iter__ tanımlayan bir nesne döndüren taze bir YİNELEYİCİ, veya __getitem__ bir yöntem endeksli arama için uygun olabilir.

Bir YİNELEYİCİ

  • bir yineleme sırasında nerede olduğunu hatırlayan devlet ile nesne
  • __next__ yöntemi ile bir nesne (3; next önce Python):
    • döner yineleme sonraki değer
    • devlet sonraki değer nokta güncellemeler
    • yükselterek zaman yapılır sinyalleri 8**
  • nesne kendini iterable (kendi kendini döndüren __iter__ bir yöntemi var yani).

Bu yerleşik next nesne __next__ (Python 3) veya next (Python 2) yöntemi, kendisine geçirilen işlevini çağırır.

Örneğin:

>>> s = 'cat'      # s is an ITERABLE
                   # s is a str object that is immutable
                   # s has no state
                   # s has a __getitem__() method 

>>> t = iter(s)    # t is an ITERATOR
                   # t has state (it starts by pointing at the "c"
                   # t has a next() method and an __iter__() method

>>> next(t)        # the next() function returns the next value and advances the state
'c'
>>> next(t)        # the next() function returns the next value and advances
'a'
>>> next(t)        # the next() function returns the next value and advances
't'
>>> next(t)        # next() raises StopIteration to signal that iteration is complete
Traceback (most recent call last):
...
StopIteration

>>> iter(t) is t   # the iterator is self-iterable

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • o0oCyrusViruso0o

    o0oCyrusViru

    11 Mart 2008
  • PremiumBeat.com - Royalty Free Music

    PremiumBeat.

    16 Kasım 2008
  • Rickymon Tero

    Rickymon Ter

    1 Ocak 2007