On Tue, Sep 26, 2017 at 8:49 AM, Stefan Ram <r...@zedat.fu-berlin.de> wrote: > |>>> from random import randint > | > |>>> randint > |<bound method Random.randint of <random.Random object at 0x0000000000389798>> > | > |>>> randint.__self__ > |<random.Random object at 0x0000000000389798> > | > |>>> randint( 2, 3 ) > |2 > > It seems I am calling the method »randint« of the object at > »0x389798«, but I do not have to write the object into the > call!? > > So, is there some mechanism in Python that can bind a method > to an object so that the caller does not have to specify the > object in the call? > > If so, how is this mechanism called?
>>> stuff = [] >>> add_stuff = stuff.append >>> add_stuff("spam") >>> add_stuff("eggs") >>> add_stuff("sausage") >>> add_stuff("spam") >>> stuff ['spam', 'eggs', 'sausage', 'spam'] In a typical method call, "obj.meth(args)", the "obj.meth" part is itself a valid expression, and it evaluates to a bound method object. I suppose you could call that mechanism "method binding" if you like, but mainly it's just attribute lookup. ChrisA -- https://mail.python.org/mailman/listinfo/python-list