MRAB wrote:
Tim Chase wrote:
  switch row['recordtype']:
    case '01':
      phone.international += Decimal(row['internationalcost'])
      // optionally a "break" here depending on
      // C/C++/Java/PHP syntax vs. Pascal syntax which
      // doesn't have fall-through
    case '02':
      phone.text_messaging += (
        int(row['textmessages sent']) +
        int(row['pages received']) +
        int(row['textmessages sent']) +
        int(row['pages received'])
    ...
    default:
      raise WhatTheHeckIsThis()

This doesn't convert well (i.e. compactly) to a dictionary-dispatch idiom. :(

Shouldn't 'case' be indented to the same level as 'switch'? And
'default' could be replaced by 'else' without ambiguity.

But I want a GREEN bike-shed! :-) Yeah, "else" works nicely and makes sense. Indentation could go either way in my book, but I lean towards indented "case" because the "switch" can get easily lost if the "case"s aren't indented:

  switch foo:
  case 1:
    stuff()
  case 2:
    morestuff()
  switch bar:
  case 3:
    whatever()
  case 4:
    yet_more()
  else:
    whip_it()

vs

  switch foo:
    case 1:
      stuff()
    case 2:
      morestuff()
  switch bar:
    case 3:
      whatever()
    case 4:
      yet_more()
    else:
      whip_it()

Just my ponderings...

-tkc



--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to