[Python-Dev] re: PEP 275: Switching on Multiple Values, Rev 1.2 (original) (raw)
Brian Slesinsky bslesins@best.com
Mon, 26 Nov 2001 18:34:25 -0800 (PST)
- Previous message: [Python-Dev] re: PEP 275: Switching on Multiple Values, Rev 1.2
- Next message: [Python-Dev] re: PEP 275: Switching on Multiple Values, Rev 1.2
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
In languages with pattern matching, you find that they use it to emulate late binding: depending on the structure of a thing, you perform different code. In Python, this is more easily done using methods of the object, which naturally dispatch based on the type of the object.
Method dispatch is a great technique and I was once in the "all case statements are insufficiently object-oriented" camp. But sometimes you need to work with base types or other people's classes without subclassing them, so I find myself writing long if-then-elif statements (most recently for a memory profiler), and case statements would make this code clearer. (Though not nice enough to switch languages, in particular to Prolog.)
re: "Classes don't participate that easily in pattern matching"
True for many classes and I'll admit my proposal was quarter-baked. Even matching on base types like tuple, list, and dictionary would be plenty interesting. (Especially since they're subclassable.)
- Brian
- Previous message: [Python-Dev] re: PEP 275: Switching on Multiple Values, Rev 1.2
- Next message: [Python-Dev] re: PEP 275: Switching on Multiple Values, Rev 1.2
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]