2017-03-14 5 views
3

J'ai la fonction qui ressemble à ceci:L'utilisation de valeurs par défaut dans Python mixte avec des paramètres d'entrée

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

Maintenant, je veux utiliser le paramètre par défaut pour port et request mais pas pour ip_addr. Comment dois-je écrire la fonction dans ce cas?

CreateURL('192.168.2.1') 

ne fonctionne pas depuis itwill remplacer les port et non la ip_addr

+2

'CreateURL (ip_addr = '192.168.2.1') ​​' –

Répondre

6

passer le paramètre explicitement.

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

url = CreateURL(ip_addr='192.168.2.1')

2

Il suffit d'indiquer le nom du paramètre que vous souhaitez spécifier comme ceci:

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

Vous pouvez tout simplement passer le paramètre explicitement

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