CONSTRUCT - Python's way of Ruby's "alias_method"

Ilias Lazaridis ilias at lazaridis.com
Thu Jun 8 14:03:45 EDT 2006


Duncan Booth wrote:
> Ilias Lazaridis wrote:
> 
>> I would like to know, if this construct is valid, or if it can result in 
>> problems (that I do not see as a newcomer):
>>
>>       1082    try:
>>       1083        from django.rework.evolve import evolvedb
>>       1084    except ImportError:
>>       1085        def evolvedb():
>>       1086            "Evolve Command Dummy"
>>       1087            print 'Command evolvedb not imported'
>>       1088        evolvedb.args =''
> 
> The only real problem here is that if django.rework.evolve imports 
> something else which doesn't exist you get your fallback code instead of 
> reporting the error. In other words there is a chance that you could mask a 
> deeper problem.
> 
> If this worries you then you could do:
> 
> try:
>     from django.rework.evolve import evolvedb
> except ImportError, e:
>     if str(e).rsplit(' ')[-1] != 'django.rework.evolve':
>         raise
>     ... rest of code here ...

I thin I understand.

If the exception is _not_ caused by 'django.rework.evolve', then it will 
be raised, thus I can see what caused it.

Very nice!

.

-- 
http://lazaridis.com



More information about the Python-list mailing list