[Python-Dev] Can Python implementations reject semantically invalid expressions? (original) (raw)
Maciej Fijalkowski fijall at gmail.com
Mon Jul 5 10:44:57 CEST 2010
- Previous message: [Python-Dev] Can Python implementations reject semantically invalid expressions?
- Next message: [Python-Dev] Can Python implementations reject semantically invalid expressions?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Fri, Jul 2, 2010 at 10:35 PM, Steven D'Aprano <steve at pearwood.info> wrote:
On Sat, 3 Jul 2010 11:39:07 am Greg Ewing wrote:
Stefan Behnel wrote: > So, would it still be Python if it folded > > 1 + "1" > > into > > raise TypeError() > > at compile time?
It would have to be raise TypeError("Exactly the message that would have been produced at run time") Python doesn't make any guarantees about the message that exceptions display, so I don't think you need to match the message, just the exception. Anyone testing for specific exception messages is living in a state of sin and shouldn't complain when their code stops working. An implementation might choose to raise TypeError('is this the right place for an argument?') on alternate Tuesdays, and it would still meet the promises made by the language.
In theory it does not, in practice people rely on it. Besides, I would not be overly happy if:
def f(): return 1 + "1"
and
def g(): a = 1 return a + "1"
raise different messages
- Previous message: [Python-Dev] Can Python implementations reject semantically invalid expressions?
- Next message: [Python-Dev] Can Python implementations reject semantically invalid expressions?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]