检查python函数参数是否有值

检查python函数参数是否有值,python,python-3.x,Python,Python 3.x,我正在编写一个带有多个参数的python函数。函数的工作方式取决于参数是否设置为value。如何检查python函数参数是否有值?您可以这样尝试: def func(par1=None): if par1 is None: #you got function without parameters print("No parameter") else: print(par1) >>func() <<No par

我正在编写一个带有多个参数的python函数。函数的工作方式取决于参数是否设置为value。如何检查python函数参数是否有值?

您可以这样尝试:

def func(par1=None):
    if par1 is None:
        #you got function without parameters
        print("No parameter")
    else:
        print(par1)
>>func()
<<No parameter
>>func('Hi')
<<Hi
def func(par1=None):
如果par1为无:
#你得到了一个没有参数的函数
打印(“无参数”)
其他:
印刷品(par1)
>>func()
func('Hi')

您可以为python参数指定默认值,如下所示:

def example(eg1="Value here", eg2=2):
    print(eg1)
    print(eg2)
调用示例时,将分别输出“Value here”和2,如下所示:

示例()


让我知道这是否有帮助。干杯

如果你愿意坚持使用关键字参数,你可以这样做:

VALID_ARGUMENTS = ('foo', 'bar', 'cheese', 'eggs', 'spam')

def multiple_dispatch_named(**kwargs):
    for argument_name in kwargs:
        if argument_name not in VALID_ARGUMENTS:
            raise TypeError(
                f"argument_name() got an unexpected keyword argument '{argument_name}'")

    if 'cheese' not in kwargs:
        raise TypeError(f"argument_name() missing the required 'cheese'")

    if 'foo' in kwargs:
        return do_some_foo_with(**kwargs)

    if 'bar' in kwargs:
        return do_some_bar_with(**kwargs)

    return do_some_default_with(**kwargs)

如果参数没有值,则它是未定义的,调用将失败。你能澄清一下你想做什么吗?可能是一个参数有默认值的函数?你能不能只将默认值设置为某些参数,如果这些默认值持续存在,那么你就知道没有为它们设置“真实”值。类似于@Prune所说的,你可以使用try/except块。试着提出一个论点,如果它有效的话。如果你在浏览器中搜索“Python函数默认参数”,你会找到比我们在这里能更好地解释这一点的参考。投票关闭。Python中定义的函数参数总是有一个值,要么在调用中给定,要么是一个默认值。如果两者都不是真的,则会引发异常。
None
是Python中的单例,最好的测试方法是
par1 is None
而不是
part1==None
。对不起,我刚才混合了一些编程语言XD