[Python-Dev] Why is nb_inplace_power ternary? (original) (raw)
"Martin v. Löwis" Martin.vonLoewis at hpi.uni-potsdam.de
Fri Feb 9 09:38:56 CET 2007
- Previous message: [Python-Dev] Why is nb_inplace_power ternary?
- Next message: [Python-Dev] Why is nb_inplace_power ternary?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Brett Cannon schrieb:
Seems reasonable to me. Is the argument of None passed in automatically somewhere?
There are few callers of nb_inplace_power at all (AFAICT, only PyNumber_InPlacePower); in turn, PyNumber_InPlacePower is called with the implicit Py_None always:
- ceval.c, for INPLACE_POWER (which is binary)
- operator.ipow (which is also binary)
- class.c, from bin_inplace_power, which in turn is called from instance_ipow if the instance's 3rd argument to nb_inplace_power is Py_None (if there is a non-None third argument, instance_ipow invokes ipow with three arguments if ipow is defined, else it invokes pow with three arguments)
The only case I could find where a third argument is non-None is when the builtin pow() is invoked, which then invokes nb_power (but not nb_inplace_power) with three arguments.
Regards, Martin
- Previous message: [Python-Dev] Why is nb_inplace_power ternary?
- Next message: [Python-Dev] Why is nb_inplace_power ternary?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]