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 <[email protected]> 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 _______________________________________________ Zope-Dev maillist - [email protected] http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )
