On 02/03/2014 16:23, Chris Angelico wrote:

A switch block that works with constants and equality *can* be turned
into a dict. If the constants are hashable, use them as the keys
directly; if they're not hashable and/or you want to use object
identity as the criterion (effectively like using 'is' rather than
'==' for your case statements), use id(x) as the keys, and make sure
you have other references to the objects. Then it'll be fine as a
straight-up dict.

If the switch block uses inequalities, then it suffers from the same
problem as the try/except block - it's inherently ordered, in case
(pun intended) there's a switched-on value that matches more than one.
(You could possibly optimize the int case, but that would be way WAY
too specific for a generic language structure.)

ChrisA


You clearly don't get my point. I *DON'T* want to use stupid constants and stupid equalities, I want to use identities. I *DON'T* want to use stupid ==, I want to use 'is'. I *DON'T* care how many people with years of experience of Python tell me that this is the wrong thing to do, that is how I am going to do it. So, for the final time of asking, how do I do the above with, and only with, the identity, even if you stupidly keep on trying to tell me that this is wrong?

--
My fellow Pythonistas, ask not what our language can do for you, ask what you can do for our language.

Mark Lawrence

---
This email is free from viruses and malware because avast! Antivirus protection 
is active.
http://www.avast.com


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

Reply via email to