Maison  >  Article  >  développement back-end  >  Utilisation et points clés à noter sur les valeurs par défaut des paramètres des fonctions Python

Utilisation et points clés à noter sur les valeurs par défaut des paramètres des fonctions Python

不言
不言avant
2019-04-15 11:07:084035parcourir

Le contenu de cet article concerne l'utilisation et les points clés à noter concernant les valeurs par défaut des paramètres de la fonction python. J'espère qu'il a une certaine valeur de référence. cela vous sera utile. La forme la plus utile de

spécifie une valeur par défaut pour un ou plusieurs paramètres. La fonction ainsi créée peut être appelée avec moins d'arguments que ce qui est autorisé lors de la définition, par exemple :

def ask_ok(prompt, retries=4, reminder='Please try again!'):
    while True:
        ok = input(prompt)
        if ok in ('y', 'ye', 'yes'):
            return True
        if ok in ('n', 'no', 'nop', 'nope'):
            return False
        retries = retries - 1
        if retries < 0:
            raise ValueError(&#39;invalid user response&#39;)
        print(reminder)

Cette fonction peut être appelée de plusieurs manières :

est donnée uniquement les paramètres obligatoires : <span class="pre">ask_ok('Voulez-vous <span class="pre">vraiment <span class="pre "> <span class="pre">pour <span class="pre">quitter ?')<code class="docutils literal notranslate"><span class="pre">ask_ok('Do <span class="pre">you <span class="pre">really <span class="pre">want <span class="pre">to <span class="pre">quit?')<br></span></span></span></span></span></span> code>Donnez un paramètre facultatif : <span class="pre">ask_ok('OK <span class="pre">pour <span class="pre ">écraser <span class="pre">le <span class="pre">fichier ?', <span class="pre">2)<code class="docutils literal notranslate"><span class="pre">ask_ok('OK <span class="pre">to <span class="pre">overwrite <span class="pre">the <span class="pre">file?', <span class="pre">2)<br></span></span></span></span></span></span> Ou donnez tous les paramètres : <span class="pre">ask_ok('OK <span class="pre">to <span class="pre">overwrite <span class="pre">the <span class="pre">file?', <span class="pre">2, <span class="pre">'Come <span class="pre">on, <span class="pre">only <span class="pre">yes <span class="pre">or <span class="pre">no!')</span></span></span></span></span></span></span></span></span></span></span></span>

Cet exemple introduit également le mot-clé <span class="pre">in</span>. Il peut tester si une séquence contient une certaine valeur.

La valeur par défaut est calculée lors de la définition de la fonction dans le processus de définition, donc

i = 5

def f(arg=i):
    print(arg)

i = 6
f()

imprimera 5.

Avertissement important : La valeur par défaut ne sera exécutée qu'une seule fois. Cette règle est importante lorsque la valeur par défaut est un objet mutable (listes Python, dictionnaires et la plupart des instances de classe). Par exemple, la fonction suivante stockera les arguments qui lui seront transmis lors des appels suivants :

def f(a, L=[]):
    L.append(a)
    return L

print(f(1))
print(f(2))
print(f(3))

Cela affichera

[1]
[1, 2]
[1, 2, 3]

si vous ne souhaitez pas partager les valeurs par défaut entre valeur des appels ultérieurs, vous pouvez écrire cette fonction python comme ceci :

def f(a, L=None):
    if L is None:
        L = []
    L.append(a)
    return L

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