On Feb 19, 2009, at 4:07 PM, Shane Hathaway wrote:
Fred Drake wrote:
On Thu, Feb 19, 2009 at 11:03 AM, Jim Fulton <jim@zope.com> wrote:
BTW, I strongly discourage from imports. (I didn't always have this opinion, but have seen the error of my ways. Thanks to Fred Drake for nudging me in this direction.) IMO, this is wildly more important than any of the issues raised in this thread.
You're welcome. :-)
You're saying that:
import zope.interface.Interface
class IFoo(zope.interface.Interface): ...
is better than:
from zope.interface import Interface
class IFoo(Interface): ...
This is an interesting case. This could make a good exception to the rule. Interface is so commonly used, at least within the zope community it really wants to be a builtin, like list or tuple. Most names are not nearly as common. Even with this example, which I consider atypical, I think there are a couple of interesting things to note: 1. While Interface is well known to us, it isn't well known to other possible readers of the code. When working on a project, certain names are very will known to me and don't seem to benefit from qualification, however, when I leave a project and come back to it much later, I appreciate the qualification that makes interpreting the no-longer familiar names much easier. 2. Depending on what code you might unearth, Interface could be either zope.interface.Interface, or the older version Interface.Interface. Package qualification makes this unambiguous. Jim -- Jim Fulton Zope Corporation