Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- """
- illustrates Python's dynamic import behavior
- """
- import sys
- def main(args):
- args = [unicode(arg, "UTF-8") for arg in args]
- PACKAGE = "package"
- MODULE = "module"
- ATTR = "foo"
- if args[1] == "A":
- m = __import__(PACKAGE)
- elif args[1] == "B":
- m = __import__(PACKAGE, fromlist=[MODULE])
- elif args[1] == "C":
- m = __import__("%s.%s" % (PACKAGE, MODULE))
- elif args[1] == "D":
- m = __import__("%s.%s" % (PACKAGE, MODULE), fromlist=[MODULE])
- else:
- raise ValueError
- print "%s -- %s --" % (m.__name__,
- m.__name__.endswith(MODULE) or MODULE in dir(m)),
- try:
- print getattr(m, ATTR)
- except AttributeError, exc:
- print "AttributeError: %s" % exc
- return True
- if __name__ == "__main__":
- status = not main(sys.argv)
- sys.exit(status)
Add Comment
Please, Sign In to add comment