Runtime check of methods

meow meowing at banet.net
Mon Aug 23 13:34:02 EDT 1999


Per Kistler <kistler at fnmail.com> wrote:

> Why does Python only runtime check, wether it knows a method? For
> instance, if I forget to put the "self." in front of a method in a
> class, than python myclass.py still does not complain.

It's not necessarily an error.  Remember that this language treats
everything as a big pile of function pointers and dispatch tables, and
you can mess around with them at run time.  Try this:

=-=-=-= goofymod.py =-=-=-=
class Goofyclass:

   def doit(self):
       print unknownsub()    # This doesn't look at all healthy.
#eof

=-=-=-= main.py =-=-=-=
import goofymod

def useful():
    return "meow"

foo = goofymod.Goofyclass()  # We still have no unknownsub,
goofymod.unknownsub = useful # but fix that here,
foo.doit()                   # and it even works.
#eof




More information about the Python-list mailing list