In article <[EMAIL PROTECTED]>,
Roger Binns <[EMAIL PROTECTED]> wrote:
                        .
                        .
                        .
>> runner.py:200: Function (detectMimeType) has too many returns (11)
>>
>> The function is simply a long "else-if" clause, branching out to different
>> return statements. What's wrong? It's simply a "probably ugly code" advice?
>
>That is also advice.  Generally you use a dict of functions, or some other
>structure to lookup what you want to do.
                        .
                        .
                        .
This interests me.  Let's be more precise.

Use, it's absolutely true that good Python style exploits dicts
far more than newcomers realize (although somewhat less than Lua,
a language which intriguingly pushes dictionary pragmatics to the
limit).  In particular, it is frequently the case that beginners'
appetite for a "switch" is best met by a lesson in use of a 
dictionary of functions.

HOWEVER, proliferation of functions itself adds weight.  My own
counsel is that a simple sequence of

  if ...
    return ...
  if ...
    return ...

often is exactly the right definition for a specific function.
I, incidentally, prefer this form over the 

  if ...
    return ...
  elif ...
    return ...

the original poster described.

So:  yes, "[g]enerally you use a dict of functions" when PyChecker
thinks you have "too many returns", but I do NOT advise it for the
specific case that appears to be at hand.
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to