Apprentissage de la grammaire de base de Python - fonction


avant-propos

Poursuivant l'étude de cette semaine,


1. Fonction

La définition de la fonction peut contenir plusieurs paramètres formels, de sorte que l'appel de la fonction peut également contenir plusieurs paramètres réels. Il existe de nombreuses façons de transmettre des paramètres réels à la fonction : des paramètres réels positionnels peuvent être utilisés et des paramètres réels de mots clés peuvent également être utilisés.

1. Arguments positionnels

En fonction de l'ordre des paramètres réels, associez-les aux paramètres formels.

def describe_pet(animal_type,pet_name):
    print("I have a {animal_type}.".format(animal_type = animal_type))
    print("My {animal_type} name is {pet_name}".format(animal_type = animal_type,pet_name = pet_name))

    
describe_pet('harry','hamster')

Dans cet exemple, le premier paramètre réel 'harry'est passé au animal_typeparamètre formel.

2. Arguments de mots-clés

describe_pet(animal_type = 'harry',pet_name = 'hamster')

Il indique clairement à quel paramètre formel passer le paramètre réel. L'ordre n'a pas d'importance.

3. Valeur par défaut

Vous pouvez affecter une valeur par défaut à un paramètre formel lors de la définition d'une fonction, et ce sera la valeur par défaut si vous n'affectez pas de valeur au paramètre formel lors de son appel. Lors de la définition, les paramètres formels avec des valeurs par défaut doivent être écrits après les paramètres formels sans valeurs par défaut, afin de pouvoir toujours interpréter correctement les arguments positionnels.

4. Rendre les arguments facultatifs

Parfois, nous pouvons ou non avoir besoin d'un paramètre formel dans une fonction.Lors de l'appel, afin de s'assurer que la fonction peut s'exécuter normalement, définissez la valeur par défaut de ce paramètre formel à la fin, de sorte que lors de l'appel, s'il n'y en a ‘ ’pas paramètre réel, sa valeur par défaut est vide, si ce paramètre réel existe, précisez sa valeur.

5. Passez la liste à la fonction

Si on passe une liste à la fonction et qu'on modifie la liste dans la fonction, la liste des paramètres réels sera également modifiée (entendu comme passer l'adresse de la liste) par
exemple

a = [1,2,3,4]
def list_a(a):
    a.pop()

list_a(a)
a
[1, 2, 3]

On peut voir que le dernier élément de la liste a est supprimé dans la fonction.Après l'appel de la fonction, la liste a change en dehors de la fonction.
Si nous voulons changer la liste uniquement à l'intérieur de la fonction, mais que la liste réelle a ne change pas, comment devrions-nous le faire ?
Une copie de la liste a peut être transmise. Comme suit

a = [1,2,3,4]
list_a(a[:])
a
[1, 2, 3, 4]

6. Passez n'importe quel nombre d'arguments

Si vous ne savez pas combien de paramètres la fonction doit accepter, vous ne pouvez définir qu'un seul paramètre formel lors de la définition de la fonction.
Par exemple

def deng(*x):
    print(x)

deng(1)
(1,)
deng(1,2,3,4)
(1, 2, 3, 4)

Comme vous pouvez le voir, ajoutez un nombre avant le paramètre formel *, qui peut accepter n'importe quel nombre de paramètres réels, et convertissez tous les paramètres réels en un tuple.

Notez que s'il existe d'autres arguments de position ou de mots-clés, nous devons *argsles placer après les autres paramètres formels.

7. Passez n'importe quel nombre d'arguments de mots clés

Si nous voulons accepter n'importe quel nombre d'arguments, mais ne savons pas quel type d'informations est transmis à la fonction. Les fonctions peuvent être écrites pour accepter n'importe quel nombre de paires clé-valeur.
Les exemples sont les suivants :

def build_profile(first_name,last_name,**user_name):
    user_name['first_name'] = first_name
    user_name['last_name'] = last_name
    return user_name

user_profile = build_profile('deng','chao',location = 'princeton',field = 'physics')

print(user_profile)
{
    
    'location': 'princeton', 'field': 'physics', 'first_name': 'deng', 'last_name': 'chao'}

Lors de la définition de la fonction, j'en ai ajouté deux avant le paramètre formel user_name **.La fonction de celui-ci est de stocker les paramètres suivants dans le dictionnaire user_name sous la forme de paires clé-valeur, et ce dictionnaire est également accessible à l'intérieur de la fonction user_name.

Je suppose que tu aimes

Origine blog.csdn.net/weixin_47250738/article/details/130598439
conseillé
Classement