Proposal: Inline Import

Mike Meyer mwm at mired.org
Fri Dec 9 20:33:38 EST 2005


Shane Hathaway <shane at hathawaymix.org> writes:
> Xavier Morel wrote:
>> Shane Hathaway wrote:
>>>Thoughts?
>>  >>> import re; name_expr = re.compile('[a-zA-Z]+')
>>  >>> name_expr
>> <_sre.SRE_Pattern object at 0x00F9D338>
>>  >>>
>> the import statement can be called anywhere in the code, why would
>> you add strange syntactic sugar that doesn't actually bring anything?
> That syntax is verbose and avoided by most coders because of the speed
> penalty.

What speed penalty? "import re" is a cheap operation, every time but
the first one in a program.

> What's really got me down is the level of effort required to move code
> between modules.  After I cut 100 lines from a 500 line module and
> paste them to a different 500 line module, I have to examine every
> import in both modules as well as examine the code I moved for missing
> imports.

Has it ever occured to you that if you're cutting and pasting 500 line
blocks, you're doing something fundamentally wrong? One of the points
of modules and OO is that you don't *have* to do things like
that. Cut-n-paste means you wind up with two copies of the code to
maintain, so that bug fixes in one will have to be propogated to the
other "by hand". Rather than spend time fixing what you broke by
yanking the code out of it's context, you'd be better off refactoring
the code so you could use it in context. That'll cut down on the
maintenance in the future, and may well mean that the next time
someone needs the code, it'll already be properly refactored so they
can use it directly, without having to cut-n-paste-n-fix it again.
     
     <mike
-- 
Mike Meyer <mwm at mired.org>			http://www.mired.org/home/mwm/
Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information.



More information about the Python-list mailing list