with self.assertRaises(NameError) as err:
def f(v=a, x=b, *, y=c, z=d):
pass
- self.assertEqual(str(err.exception), "global name 'b' is not defined")
+ self.assertEqual(str(err.exception), "name 'b' is not defined")
with self.assertRaises(NameError) as err:
f = lambda v=a, x=b, *, y=c, z=d: None
- self.assertEqual(str(err.exception), "global name 'b' is not defined")
+ self.assertEqual(str(err.exception), "name 'b' is not defined")
def test_main():
Pierre Quentel
Brian Quinlan
Anders Qvist
+Ram Rachum
Jérôme Radix
Burton Radons
Jeff Ramnani
Core and Builtins
-----------------
+- Issue #17032: The "global" in the "NameError: global name 'x' is not defined"
+ error message has been removed. Patch by Ram Rachum.
+
- Issue #17223: array module: Fix a crasher when converting an array containing
invalid characters (outside range [U+0000; U+10ffff]) to Unicode:
repr(array), str(array) and array.tounicode(). Patch written by Manuel Jacob.
#define NAME_ERROR_MSG \
"name '%.200s' is not defined"
-#define GLOBAL_NAME_ERROR_MSG \
- "global name '%.200s' is not defined"
#define UNBOUNDLOCAL_ERROR_MSG \
"local variable '%.200s' referenced before assignment"
#define UNBOUNDFREE_ERROR_MSG \
err = PyDict_DelItem(f->f_globals, name);
if (err != 0) {
format_exc_check_arg(
- PyExc_NameError, GLOBAL_NAME_ERROR_MSG, name);
+ PyExc_NameError, NAME_ERROR_MSG, name);
goto error;
}
DISPATCH();
if (v == NULL) {
if (!PyErr_Occurred())
format_exc_check_arg(PyExc_NameError,
- GLOBAL_NAME_ERROR_MSG, name);
+ NAME_ERROR_MSG, name);
goto error;
}
Py_INCREF(v);
if (PyErr_ExceptionMatches(PyExc_KeyError))
format_exc_check_arg(
PyExc_NameError,
- GLOBAL_NAME_ERROR_MSG, name);
+ NAME_ERROR_MSG, name);
goto error;
}
}