在 Python 2 中,要检查方法的参数,我可以使用inspect.getargspec.
然而,在 Python 3 中,在 name 下添加了一个插入式替换inspect.getfullargspec,并被inspect.getargspec弃用。
有没有办法编写检查参数的 Python 2 和 3 兼容代码?实际上,我只需要在运行时找出方法具有的参数数量。
在 Python 2 中,要检查方法的参数,我可以使用inspect.getargspec.
然而,在 Python 3 中,在 name 下添加了一个插入式替换inspect.getfullargspec,并被inspect.getargspec弃用。
有没有办法编写检查参数的 Python 2 和 3 兼容代码?实际上,我只需要在运行时找出方法具有的参数数量。
有一个通用的解决方案来编写 Python2/3 兼容的导入
try:
from inspect import getfullargspec as get_args
except ImportError:
from inspect import getargspec as get_args
def foo(a, *args, **kwargs):
pass
print(get_args(foo))
# Python 3
# FullArgSpec(args=['a'], varargs='args', varkw='kwargs', defaults=None, kwonlyargs=[], kwonlydefaults=None, annotations={})
# Python 2
# ArgSpec(args=['a'], varargs='args', keywords='kwargs', defaults=None)