On 02/09/2016 10:57 AM, Joseph Martinot-Lagarde wrote: > Victor Stinner <victor.stinner <at> gmail.com> writes: > >> >> Hi, >> >> I changed the Python compiler to ignore any kind "constant >> expressions", whereas it only ignored strings and integers before: >> http://bugs.python.org/issue26204 >> >> The compiler now also emits a SyntaxWarning on such case. IMHO the >> warning can help to detect bugs for developers who just learnt Python. >> >> The warning is *not* emited for strings, since triple quoted strings >> are a common syntax for multiline comments. >> >> The warning is *not* emited neither for ellispis (...) since "f(): >> ..." is a legit syntax for abstract function. >> > > I frequently use 1/0 as a quick break in a script or a program (it's even > more useful with post-mortem debugging). Would it be considered as a > constant and ignored instead of raising a ZeroDivisionError ?
At first, expressions involving operators are not seen as constant. But 1/2 would be removed, since the peepholer will evaluate it to 0.5 (or 0) and the constant-removal pass will recognize it as a constant (assuming this ordering of the passes). In the case of 1/0 the peepholer will try to evaluate it, but get an exception and therefore not touch the expression further. cheers, Georg _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com