Some questions are more reasonable than others.
If the version of a function used in a package were IDENTICAL to the
built-in, then why have it?
There are many possible reasons a package may tune a function for their own
preferences or re-use a name that ends up blocking the view of another name.
The bottom line is if you do not want the other one, then don't ask for it
by not importing the entire module into your namespace or by explicitly
asking for the base function in the ways python provides.
Others have replied about differences in various implementations of pow()
and reiterated my point above that if you want a specific function instance,
it is your responsibility to make sure you get it.
One method I would mention that I have not seen is to copy pow() to your own
name before importing other things. Something like:
pow3 = pow
import ...
Then use the new name.
Or import all of math (despite advice not to) and then make pow3 a synonym
for the base version.
Most people most of the time will want a small and fast function that does
what they asked for and does not waste time looking for an optional third
argument and doing something additional. Would you be satisfied if
math::pow() simply checked for a third argument and turned around and called
base::pow() to handle it?
A deeper question I can appreciate is wondering if it is a bug or feature
that python (and many other languages) allow results where you can hide a
variable or function name. I call it a feature. As with all such variables,
scope rules and other such things apply and make the language powerful and
sometimes a tad dangerous.
--
https://mail.python.org/mailman/listinfo/python-list