A
Arnaud Delobelle
Hi all,
Here is an extract from the dis module doc [1]
"""
RAISE_VARARGS(argc)
Raises an exception. argc indicates the number of parameters to the
raise statement, ranging from 0 to 3. The handler will find the
traceback as TOS2, the parameter as TOS1, and the exception as TOS.
"""
OTOH, looking at PEP 3109:
"""
In Python 3, the grammar for raise statements will change from [2]
raise_stmt: 'raise' [test [',' test [',' test]]]
to
raise_stmt: 'raise' [test]
"""
So it seems that RAISE_VARARGS's argument can only be 0 or 1 in Python
3, whereas it could be up to 3 in Python 2. Can anyone confirm that
this is the case? In this case, I guess the dis docs need to be
updated.
Thank you,
Arnaud
[1] http://docs.python.org/py3k/library/dis.html#opcode-RAISE_VARARGS
[2] http://www.python.org/dev/peps/pep-3109/#grammar-changes
Here is an extract from the dis module doc [1]
"""
RAISE_VARARGS(argc)
Raises an exception. argc indicates the number of parameters to the
raise statement, ranging from 0 to 3. The handler will find the
traceback as TOS2, the parameter as TOS1, and the exception as TOS.
"""
OTOH, looking at PEP 3109:
"""
In Python 3, the grammar for raise statements will change from [2]
raise_stmt: 'raise' [test [',' test [',' test]]]
to
raise_stmt: 'raise' [test]
"""
So it seems that RAISE_VARARGS's argument can only be 0 or 1 in Python
3, whereas it could be up to 3 in Python 2. Can anyone confirm that
this is the case? In this case, I guess the dis docs need to be
updated.
Thank you,
Arnaud
[1] http://docs.python.org/py3k/library/dis.html#opcode-RAISE_VARARGS
[2] http://www.python.org/dev/peps/pep-3109/#grammar-changes