importing part of a module without executing the rest

krishna.000.k at krishna.000.k at
Fri Jun 13 23:52:49 CEST 2008
a = 20
from abc import *
print "Should this be printed when 'a'  is alone imported from this
from file1 import a
print a is used in a context where 'from abc import *' statement
doesn't make sense but it can make sense of (and requires) 'a'.
But it seems we can't import just a part of the module and expect the
rest to not be executed.
Executing python executes the 'from abc ...' and the print
statement following it in

Can't I just import 'a' into this name scope without touching the rest
of the statements in the module (file1 in this case). If so, what the
rationale behind such logic in the module 'import' mechanism of
Of course, the option of using if __name__ == '__main__' in
for statements following 'a = 20' is not useful in my case as I need
all statements in file1 to be exectued when imported by someone else

Don't I have any solution other than packaging those parts in
(a = 20 and the rest of the statements) into different modules?

More information about the Python-list mailing list