Issue 30878: The staticmethod doesn't properly reject keyword arguments (original) (raw)
Check out this:
python3.6 -c "staticmethod(function=1)" Traceback (most recent call last): File "", line 1, in TypeError: staticmethod expected 1 arguments, got 0
python3.6 -c "staticmethod()" Traceback (most recent call last): File "", line 1, in TypeError: staticmethod expected 1 arguments, got 0
python3.6 -c "staticmethod(f=1)" Traceback (most recent call last): File "", line 1, in TypeError: staticmethod expected 1 arguments, got 0
I believe Python 2.7 behaves the same.
What should happen is more like this:
python3.6 -c "range(f=1)" Traceback (most recent call last): File "", line 1, in TypeError: range() does not take keyword arguments
While statically optimizing, I came across this as a first. At least "classmethod" behaves the same. I suppose it is because these are not intended for manual use anymore.
I would recommend to fix up the argument parsing to either indicate its rejection of keyword arguments, or to accept "function = " for input (preferred).
Thanks, Kay Hayen