Created
June 23, 2020 07:35
-
-
Save IvanaGyro/bd2cc8ec54177e0afe88aa057893039e to your computer and use it in GitHub Desktop.
Demo `getargspec` and `getfullargspec`
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from inspect import getargspec, getfullargspec | |
def kwargs_only(a, b, c=3, d=4, **kwargs): | |
pass | |
def default_args(a, b, c=3, d=4, *args, **kwargs): | |
pass | |
def default_kwargs(a, b, *args, c=3, d=4, **kwargs): | |
pass | |
print(getfullargspec(kwargs_only)) | |
# FullArgSpec(args=['a', 'b', 'c', 'd'], varargs=None, varkw='kwargs', defaults=(3, 4), kwonlyargs=[], kwonlydefaults=None, annotations={}) | |
print(getfullargspec(default_args)) | |
# FullArgSpec(args=['a', 'b', 'c', 'd'], varargs='args', varkw='kwargs', defaults=(3, 4), kwonlyargs=[], kwonlydefaults=None, annotations={}) | |
print(getfullargspec(default_kwargs)) | |
# FullArgSpec(args=['a', 'b'], varargs='args', varkw='kwargs', defaults=None, kwonlyargs=['c', 'd'], kwonlydefaults={'c': 3, 'd': 4}, annotations={}) | |
print(getargspec(kwargs_only)) | |
# ArgSpec(args=['a', 'b', 'c', 'd'], varargs=None, keywords='kwargs', defaults=(3, 4)) | |
print(getargspec(default_args)) | |
# ArgSpec(args=['a', 'b', 'c', 'd'], varargs='args', keywords='kwargs', defaults=(3, 4)) | |
print(getargspec(default_kwargs)) | |
# ValueError: Function has keyword-only parameters or annotations, use getfullargspec() API which can support them | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment