Skip to content

Potpourri of items

Import module versus from module import foo in Python

This question had always bugged me. There are two ways to import modules in Python.

import module

  • Simplest way to import a module
  • However must require using the name of the module as a prefix before a module's class or function- like module.foo. One way around this is to use import module as mo. Then you can use mo.foo.

from module import foo

  • No need to use module namespace prefix to use foo. Can import individual functions or classes.
  • However, problem with no module namespace prefix means readers have no idea where a function or class comes from.
  • from module import * adds all items from module into current namespace- which is horrible.

The Zen of Python

From Python Python Enhancement Proposal (PEP) #20

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

The Agile Manifesto

Agile Manifesto


Scrum

Scrum


Lean Software

Lean