gpt4 book ai didi

python - 如何在运行时确定给定函数参数的默认值?

转载 作者:太空狗 更新时间:2023-10-30 02:06:27 26 4
gpt4 key购买 nike

使用 python 2.4,我试图在运行时识别任意函数的哪些参数具有默认值。不幸的是,虽然我可以找到默认值是什么,但我似乎无法了解它们对应的参数。例如:

def foo(a, b, c=5):
return a + b + c

import inspect
inspect.getargspec(foo) # output is: (['a', 'b', 'c'], None, None, (5,))

getargspec 的输出在 python 2.6 中更清晰,它返回一个命名的元组:

ArgSpec(args=['a', 'b', 'c'], varargs=None, keywords=None, defaults=(5,))

Python 在执行过程中显然有足够的信息来完成任务。我怎样才能得到它?

最佳答案

具有默认值的参数必须跟在没有默认值的参数之后。因此,如果有任何默认值,它们必须对应于 args 尾部的参数。

在您的情况下,args=['a','b','c']defaults=(5,)。所以默认必须对应c

import inspect

def foo(a, b, c=5):
return a + b + c
def show_defaults(f):
args, varargs, varkw, defaults = inspect.getargspec(f)
if defaults:
for arg, default in zip(args[-len(defaults):], defaults):
print('{a} = {d}'.format(a=arg,d=default))

show_defaults(foo)
# c = 5

关于python - 如何在运行时确定给定函数参数的默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3568844/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com