Encapsulation in Python

BartC bc at freeuk.com
Mon Mar 14 19:56:19 EDT 2016


On 14/03/2016 23:19, Mark Lawrence wrote:
> On 14/03/2016 22:40, BartC wrote:

>> Was that in Python? It was /supposed/ to be dreadful. I was making a
>> case for it to be supported directly.
>
> You mean the huge great long list of hard coded function calls.  They
> are directly supported.  So is the loop.  Anything wrong with the Paul
> Rubin response?

I tried it. It wasn't bad, but still 1/3 the speed of an if-elif chain 
with discrete range-checking.

> And as my earlier link showed you often simply don't
> need a switch statement in an OO language.  Not much point providing
> something, much worse optimising it, if it isn't needed in the first place?

I disagree. And presumably so do others as there are so many different 
attempts to implement switch, with varying degrees of success. Here's 
how I do it outside Python:

  switch c
  when 'A'..'Z','a'..'z','_' then
      ++name
  when '0'..'9' then
      ++numeric
  when "()[]<>{}" then
      ++brackets
  else
      ++other
  end

Anything so terrible about that that Python needs to keep well clear of 
or that you think its users should be deprived of?

>> Sorry, I'm not going to do that, and I don't expect anyone here to have
>> to do so either. You will have to take my posts as they are.
>>
>
> Drivel.  Any establised member of this community, or any other community
> for that matter, will always publish, unless, like the RUE, they've got
> something to hide.  So you're just a chicken.  Where do you buy the
> paint from for the streaks down your back?

OK, we've got another Rod Speed! He also gets a kick out of being rude 
and insulting to everyone.

> on the grounds that speed simply is not
> the sole criteria for a language.

I agree with you. But once you've got the language right, then there's 
no harm looking at performance. A switch statement like the above can be 
executed in a single byte-code.

-- 
Bartc



More information about the Python-list mailing list