Tres Seaver wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Jean-Marc Orliaguet wrote:
There is another place where there seems to be two different patterns too:
sometimes we have:
import zope.schema
name = zope.schema.TextLine(...)
and sometimes:
from zope.schema import TextLine
name = TextLine(...)
any reason to use one or the other (speed, verbosity, avoiding circular
imports, ...) ?
I vastly prefer the second: it keeps the use points clearer,
I don't know what you mean. Perhaps you are refering to extra
clutter at point of use. I'm sympathetic to this, especially
if something is used a lot.
I generally find the point of use clearer with the full dotted name, or,
for populat modules, like zope.component, zope.schema, etc:
from zope import schema
...
name = schema.TextLine(...)
I think this is largely a matter of taste.
...
It is also ever-so-slightly faster, as it avoids a name lookup at
point-of-use. That optimization is the source of only downside of the
practice: it makes monkey-patching harder, because the original binding
gets copied.
I generally only worry about the speed when something is going to be
called a lot, as in a tight loop or in a very popular function. In cases
like those, I do prefer to import the name locally.
Jim
--
Jim Fulton mailto:[EMAIL PROTECTED] Python Powered!
CTO (540) 361-1714 http://www.python.org
Zope Corporation http://www.zope.com http://www.zope.org
_______________________________________________
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com