使用Python中的默认值与输入参数混合



我的功能看起来像这样:

def CreateURL(port=8082,ip_addr ='localhost',request='sth'):
    return str("http://" + ip_addr+":"+str(port) + '/' + request)

现在,我想使用portrequest的默认参数,但不适合ip_addr。在这种情况下,我必须如何编写功能?

CreateURL('192.168.2.1')

不起作用,因为它将覆盖port,而不是ip_addr

明确传递参数。

>>> def foo(a=1, b=2, c=3):
...     print(a, b, c)
... 
>>> foo(c=4)
(1, 2, 4)

url = CreateURL(ip_addr='192.168.2.1')

只需说明您希望指定的参数的名称:

>>> CreateURL(ip_addr = '192.168.2.1')
'http://192.168.2.1:8082/sth'

您可以简单地传递参数

>>> CreateURL(ip_addr = "192.168.2.1")
'http://192.168.2.1:8082/sth'

最新更新