At 07:04 PM 6/24/2006 +0200, Fredrik Lundh wrote: >I don't see this as much of a problem, really: we can simply restrict >the optimization to well-known data types ("homogenous" switches using >integers or strings should cover 99.9% of all practical cases), and then >add an opcode that checks uses a separate dispatch object to check if >fast dispatch is possible, and place that before an ordinary if/elif >sequence. What about switches on types? Things like XML-RPC and JSON want to be able to have a fast switch on an object's type and fall back to slower tests only for non-common cases. For that matter, you can build an effective multiway isinstance() check using something like: for t in obtype.__mro__: switch t: case int: ...; break case str: ...; break else: continue else: # not a recognized type This is essentially what RuleDispatch does in generic functions' dispatch trees now, albeit without the benefit of a "switch" statement or opcode.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4