gpt4 book ai didi

python - 如何检查python中的函数参数值?

转载 作者:行者123 更新时间:2023-11-28 21:56:43 24 4
gpt4 key购买 nike

我想检查我所有的参数值,这样我就可以将值转换为 None(如果它是一个空字符串)。

我想出了如何获取参数列表,但我不知道如何获取参数的值。

我现在拥有的是:

def __init__(self, first, middle, last):
# convert blank attributes to None
import inspect
args = inspect.getargspec(self.__init__)[0]
for arg in args:
print 'arg: ' + str(arg)
if arg == '':
arg = None

这会获取参数名称,但不会获取它们的值。我怎样才能掌握这些值(value)观?

最佳答案

只有 3 个参数,不用检查,直接引用它们,或者使用一个包罗万象的参数 *args:

def __init__(self, *args):
args = [argument or None for argument in args]

您可以通过 locals() dictionary 访问局部函数,但它是只读的,您通常应该使用它来设置默认值。

如果您确实想要一种通用方法,我会使用装饰器:

from functools import wraps

def reset_to_none(func):
@wraps(func)
def wrapper(*args, **kw):
args = [arg if not isinstance(arg, str) or arg else None for arg in args]
kw = {k: arg if not isinstance(arg, str) or arg else None for k, arg in kw.items()}
return func(*args, **kw)
return wrapper

然后将其应用于您的 __init__ 方法:

class SomeClass(object):
@reset_to_none
def __init__(self, first, middle, last):
# any of `first`, `middle` or `last` being empty strings will be set to `None`

关于python - 如何检查python中的函数参数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20937416/

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