[Python-Dev] Switch statement - handling errors (original) (raw)

Ka-Ping Yee python-dev at zesty.ca
Wed Jun 28 05:21:20 CEST 2006


On Tue, 27 Jun 2006, Jim Jewett wrote:

(Almost) everyone agrees that the case expressions SHOULD be run-time constants. The disagreements are largely over what to do when this gets violated.

I like your summary and understood most of it (options 1, 2, 3, 5, 6). The only part i didn't understand was this:

Bad Case Option (4) -- Ignore problems --------------------------------------

This is for optimization; go ahead and ignore any problems you can. Maybe that branch will never be taken... Ironically, this is also largely school I, since it matches the if semantics.

Could you elaborate on what this means? Does "ignore any problems" mean "even if a case value changes, pretend it didn't change"? But that wouldn't match the 'if' semantics, so i'm not sure what you had in mind.

Bad Case Option (6) -- Undefined -------------------------------- [...] The down side is that people may start to count on the actual behavior anyhow; then (in practice) we might just have Bad Case Option (5) without documentation.

I agree with this last paragraph. Option 6 seems the most risky of all.

-- ?!ng



More information about the Python-Dev mailing list