Overriding a function...

programmer.py at gmail.com programmer.py at gmail.com
Mon Jun 19 14:42:38 EDT 2006


Suppose I have this module `mymodule.py' -

# mymodule.py - begin
def test():
    print "original"
# mymodule.py - end

Now assume that I do this in some arbitrary module ->

def override():
    print "test is overridden"

import mymodule
mymodule.test = override

Two questions -

1) If mymodule is subsequently imported, will my `override' function be
used, or will python magically `fix' (or break depending on your
perspective) mymodule and use the original mymodule.test function?

2) Once I assign mymodule.test with override, will modules that
imported my module *PRIOR* to the assignment get override, or will they
keep the original function test()?

I hope that makes sense.

Thanks!
jw




More information about the Python-list mailing list