定义带有可选参数的函数
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
您好,我想了解如何在 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