您好我正在尝试了解如何在python函数中实现可选参数。例如,在下面的基本功能中
def Ham(p,*q):
if q:
print p+q
else:
print p
Ham(2)
Ham(2,3)
我希望Ham(2)返回'2',但Ham(2,3)会给出错误。
编辑:非常感谢。你的许多答案都很有用。答案 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以获得更好的主意。