__call__ in module?

Qopit russandheather at gmail.com
Tue Sep 27 18:40:22 EDT 2005


Nope - you can't even force it by binding a __call__ method to the
module.

For future reference, you can check to see what things *are* callable
with the built-in function 'callable'.

eg (with sys instead of MyApp):

>>> import sys
>>> callable(sys)
False

Also - a thing you can do to sort of do what you want (?) is wrap the
code to be executed by the module in a main() function.  eg:

  #-- Start of MyApp.py --
  def main(foo):
    print "My cat loves", foo

  if __name__ == "__main__":
    import sys
    main(" ".join(sys.argv[1:]))
  #-- EOF --

The main function then lets you either run your module from the command
line (MyApp.py Meow Mix) or have another module use it with:

  import MyApp
  MyApp.main("Meow Mix")




More information about the Python-list mailing list