Question about math.pi is mutable

Marko Rauhamaa marko at pacujo.net
Sun Nov 8 09:33:00 EST 2015


BartC <bc at freeuk.com>:

>>> On 08/11/2015 11:50, Marko Rauhamaa wrote:
>>>> ========================================================================
>>>> import shutil
>>>>
>>>> class Source:
>>>>       def __init__(self):
>>>>           self.remaining = "hello world"
>>>>
>>>>       def read(self, count):
>>>>           if count <= 0:
>>>>               return ""
>>>>           chunk, self.remaining = self.remaining[:count], self.remaining[count:]
>>>>           return chunk
>>>>
>>>> class Dest:
>>>>       def write(self, stuff):
>>>>           print("<{}>".format(stuff))
>>>>
>>>> shutil.copyfileobj(Source(), Dest())
>>>> ========================================================================
>
> What exactly is being looked up, and in what?
>
> [...]
>
> So to get back to what I was saying, does this lookup involving
> searching for method B in object A, and if so, does it actually do a
> search by name?

Yes, finding Source.read and Dest.write involves hash table lookups. In
fact, it's even a bit more involved: each method fetch consists of *two*
hash table lookups. First you have to check if the object has a match in
its individual lookup table and next if there is a match in the class's
lookup table.


Marko



More information about the Python-list mailing list