使用可选参数定义函数

时间:2015-06-13 22:22:36

标签: python optional function

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

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

Ham(2)


Ham(2,3)

我希望Ham(2)返回'2',但Ham(2,3)会给出错误。

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

2 个答案:

答案 0 :(得分:2)

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

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

即,q的默认值为None,如果提供p+q,则仅计算q。更简单的是:

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

答案 1 :(得分:0)

使用* 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)

汉密尔顿函数你必须将q视为一个元组,我的意思是q [0]而不是q。您可以查看this link以获得更好的主意。