gpt4 book ai didi

python - 如何检查是否使用检查设置了 python 函数参数的默认值?

转载 作者:行者123 更新时间:2023-12-04 13:11:44 24 4
gpt4 key购买 nike

我正在尝试识别未设置默认值的函数参数。我正在使用 inspect.signature(func).parameters.value() 函数,它给出了函数参数列表。由于我使用的是 PyCharm,我可以看到未设置默认值的参数将其 Parameter.default 属性设置为 inspect._empty。我通过以下方式声明函数:

def f(a, b=1):
pass

因此,a 的默认值是inspect._empty。由于 inspect._empty 是一个私有(private)属性,我想可能有一种方法可以检查一个值是否为 inspect._empty,但我找不到它。

最佳答案

你可以这样做:

import inspect


def foo(a, b=1):
pass


for param in inspect.signature(foo).parameters.values():
if param.default is param.empty:
print(param.name)

输出:

a

param.empty 持有相同的对象 inspect._empty。由于 official documentation of inspect module 中的示例,我想推荐使用这种方式。 :

Example: print all keyword-only arguments without default values:

>>>
>>> def foo(a, b, *, c, d=10):
... pass

>>> sig = signature(foo)
>>> for param in sig.parameters.values():
... if (param.kind == param.KEYWORD_ONLY and
... param.default is param.empty):
... print('Parameter:', param)
Parameter: c

关于python - 如何检查是否使用检查设置了 python 函数参数的默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64427593/

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