定义带有可选参数的函数

defining functions with optional arguments

您好,我想了解如何在 python 函数中实现可选参数。例如下面的基本函数

def Ham(p,*q):
    if q:
        print p+q
    else:
        print p

Ham(2)


Ham(2,3)

我希望 Ham(2) 达到 return '2',但 Ham(2,3) 会出错。

编辑:非常感谢。您的许多回答都很有用。

使用 *q 你指定了一个直到运行时才知道的参数列表,并且 python 期望 q 是一个元组,这意味着你可以像下面这样调用 Ham:

Ham(1, 2) # q = (2,)
Ham(1, 2, 3) # q = (2, 3)
Ham(1, 2, 3, 4) # q = (2, 3, 4)

Ham 函数的 Insidia 你必须将 q 视为元组,我的意思是,q[0] 而不是 q。你可以看看 this link 以获得更好的主意。

在您的特定示例中,我认为您的意思是:

def Ham(p,q=None):
    if q:
        print p+q
    else:
        print p

即给q一个默认值None,然后如果提供了q才计算p+q。更简单的是:

def Ham(p,q=0):
    print p+q