Maison >développement back-end >Tutoriel Python >Comment définir les paramètres par défaut des fonctions Python

Comment définir les paramètres par défaut des fonctions Python

WBOY
WBOYavant
2023-05-04 19:01:052668parcourir

Nous savons que si un paramètre n'est pas spécifié lors de l'appel d'une fonction, l'interpréteur Python lèvera une exception. Afin de résoudre ce problème, Python permet de définir des valeurs par défaut pour les paramètres, c'est-à-dire que lors de la définition d'une fonction, spécifiez directement une valeur par défaut pour les paramètres formels. Dans ce cas, même si aucun paramètre n'est passé à un paramètre formel avec une valeur par défaut lors de l'appel de la fonction, le paramètre peut utiliser directement la valeur par défaut définie lors de la définition de la fonction.

Python définit une fonction avec des paramètres de valeur par défaut. Le format de syntaxe est le suivant :

def 函数名(...,形参名,形参名=默认值):
    代码块

Notez que lors de l'utilisation de ce format pour définir une fonction, le paramètre formel avec une valeur par défaut doit être spécifié à la fin de tous les paramètres sans un valeur par défaut, sinon une erreur de syntaxe se produira.

Le programme suivant montre comment définir et appeler une fonction avec des paramètres par défaut :

#str1没有默认参数,str2有默认参数
def dis_str(str1,str2 = "http://c.biancheng.net/python/"):
print("str1:",str1)
print("str2:",str2)
 
dis_str("http://c.biancheng.net/shell/")
dis_str("http://c.biancheng.net/java/","http://c.biancheng.net/golang/")

Le résultat en cours d'exécution est :

str1 : http://c.biancheng.net/shell/
str2 : http://c .biancheng .net/python/
str1 : http://c.biancheng.net/java/
str2 : http://c.biancheng.net/golang/

Dans le programme ci-dessus, la fonction dis_str() a 2 paramètres, le second a des paramètres par défaut. Cela signifie que lors de l'appel de la fonction dis_str(), nous ne pouvons transmettre qu'un seul paramètre, qui sera passé au paramètre str1, et str2 utilisera les paramètres par défaut, comme indiqué dans la ligne 6 du programme.

Bien sûr, lors de l'appel de la fonction dis_str(), vous pouvez également transmettre des valeurs à tous les paramètres (comme indiqué dans la ligne 7 du code. Dans ce cas, même si str2 a une valeur par défaut, elle donnera la priorité). à la nouvelle valeur qui lui est transmise.
En même temps, combinées aux paramètres de mots-clés, les 3 manières suivantes d'appeler la fonction dis_str() sont également possibles :

dis_str(str1 = "http://c.biancheng.net/shell/")
dis_str("http://c.biancheng.net/java/",str2 = "http://c.biancheng.net/golang/")
dis_str(str1 = "http://c.biancheng.net/java/",str2 = "http://c.biancheng.net/golang/")

Encore une fois, lors de la définition d'une fonction avec des paramètres de valeur par défaut, les paramètres avec des valeurs par défaut doivent être situé dans tous les paramètres sans valeurs par défaut derrière les paramètres. Par conséquent, la fonction définie dans l'exemple suivant est incorrecte :

#语法错误
def dis_str(str1="http://c.biancheng.net/python/",str2,str3):
pass

Évidemment, str1 a une valeur par défaut, tandis que str2 et str3 n'ont pas de valeurs par défaut, donc str1 doit venir après str2 et str3.

Certains lecteurs peuvent demander, pour vos propres fonctions personnalisées, vous pouvez facilement savoir quels paramètres ont des valeurs par défaut, mais si vous utilisez les fonctions intégrées fournies par Python ou des fonctions fournies par d'autres tiers, comment savoir quels paramètres ont valeurs par défaut ?

Dans Pyhton, vous pouvez utiliser "function name.__defaults__" pour afficher la valeur actuelle du paramètre de valeur par défaut de la fonction, et sa valeur de retour est un tuple. Prenons l'exemple de la fonction dis_str() dans cette section. Sur cette base, exécutez le code suivant :

print(dis_str.__defaults__)

Le résultat de l'exécution du programme est :

('http://c.biancheng.net/python/', )

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer