Warum ruft „list()“ „__len__()“ auf?Python

Python-Programme
Guest
 Warum ruft „list()“ „__len__()“ auf?

Post by Guest »

Der Setup-Code:

Code: Select all

class MyContainer:
def __init__( self ):
self.stuff = [ 1, 2, 3 ]

def __iter__( self ):
print( "__iter__" )
return iter( self.stuff )

def __len__( self ):
print( "__len__" )
return len( self.stuff )

mc = MyContainer()
Jetzt in meiner Shell:

Code: Select all

>>> i = iter( mc )
__iter__
>>> [ x for x in i ]
[1, 2, 3]
>>> list( mc )
__iter__
__len__
[1, 2, 3]
Warum wird __len__() von list() aufgerufen? Und wo ist das dokumentiert?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post