People mentioned in answers a1, a2 that
Due to the way the Python C-level APIs developed, a lot of built-in functions and methods don't actually have names for their arguments.
I found it really annoying cause I'm not be able to know it by looking at the doc. For instance, eval
eval(expression, globals=None, locals=None)
Then I wrote this line of code
print(eval('a+b', globals={'a':1, 'b':2}))
and got TypeError: eval() takes no keyword arguments
. So is there a complete list of functions of this kind? How do I know if a function is allowed to have keyword arguments?