len() on iterator

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Mad-Marty
User
Beiträge: 317
Registriert: Mittwoch 18. Januar 2006, 19:46

len() on iterator

Beitragvon Mad-Marty » Freitag 6. März 2009, 15:35

Hi,

in Python 2.4 gab es noch eine __len__ methode auf iteratoren (z.b. tuple iteratoren), warum wurde len() bei iteratoren in 2.6 komplett gestrichen?
DasIch
User
Beiträge: 2402
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Beitragvon DasIch » Freitag 6. März 2009, 15:49

Wurde es nicht.
BlackJack

Beitragvon BlackJack » Freitag 6. März 2009, 16:10

@DasIch:

Code: Alles auswählen

Python 2.4.4 (#2, Jul 31 2008, 23:57:57)
[GCC 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> a = iter((1, 2, 3))
>>> a.__len__
<method-wrapper object at 0xb7cd426c>
>>>


Code: Alles auswählen

Python 2.6rc1 (r26rc1:66416, Sep 15 2008, 15:38:46)
[GCC 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> a = iter((1, 2, 3))
>>> a.__len__
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'tupleiterator' object has no attribute '__len__'


@Mad-Marty: Das wurde nie durch Dokumentation garantiert.
Mad-Marty
User
Beiträge: 317
Registriert: Mittwoch 18. Januar 2006, 19:46

Beitragvon Mad-Marty » Freitag 6. März 2009, 17:36

@ BlackJack

Ok hab nie nachgesehen ob das dokumentiert wurde, habe nur eben auf 2.6 festgestellt das es nicht mehr geht, zum glück nur einmal verwendet im source ;).


Auserdem fällt mir gerad auf das meine extensiv udp und pysnmp 2.x verwendende anwendung unter 2.6 sehr viel langsamer ist .... DeprecationWarnings bekomme ich aber keine.

Eine Idee woran das liegen könnte?

Wer ist online?

Mitglieder in diesem Forum: Google [Bot], schurmak, snafu