Maison  >  Article  >  développement back-end  >  Explication détaillée des fonctions en Python

Explication détaillée des fonctions en Python

巴扎黑
巴扎黑original
2017-08-02 11:47:042041parcourir

Parmi eux, certains attributs de fonction importants sont les suivants :

1 __doc__ renvoie la chaîne de documentation de la fonction spécifiée.

2. __name__返回函数名字。

3. __module__返回函数定义所在模块的名字。

4. func_defaults renvoie un tuple contenant les valeurs de paramètres par défaut. Les paramètres par défaut seront discutés plus tard.

5. func_globals renvoie une référence de dictionnaire contenant des variables globales de fonction.

6. func_dict返回支持任意函数属性的命名空间。

7. func_closure renvoie un tuple de corps de cellule, où le corps de cellule contient la liaison des variables libres de fonction. La fermeture sera discutée plus tard.

Les fonctions peuvent être transmises comme arguments à d'autres fonctions. Ces fonctions qui prennent d’autres fonctions comme arguments sont souvent appelées fonctions d’ordre supérieur et constituent une partie très importante de la programmation fonctionnelle. Un bon exemple de fonction d'ordre supérieur est la fonction map, qui prend une fonction et un itérateur comme arguments, applique la fonction à chaque élément de l'itérateur et renvoie une nouvelle liste. Nous allons le démontrer dans l'exemple suivant, où la fonction carrée définie précédemment et un itérateur numérique sont transmis à la fonction map.

De plus, les fonctions peuvent également être définies dans d'autres blocs de code de fonction et peuvent également être renvoyées à partir d'autres appels de fonction.

Dans l'exemple ci-dessus, nous définissons une autre fonction interne à l'intérieur de la fonction externe, et lorsque la fonction externe est exécutée, la fonction interne sera renvoyée. De plus, comme tout autre objet Python, les fonctions peuvent également être affectées à des variables, comme ceci :

Dans l'exemple ci-dessus, lorsque la fonction externe est appelée, elle renverra une fonction et affectera la fonction renvoyée à la variable func. Enfin, la variable peut être appelée tout comme la fonction renvoyée :

Dans la fonction carrée ci-dessus, lorsque le module contenant la fonction est chargé dans l'interpréteur Python, ou si la fonction est définie dans le REPL Python, l'instruction de définition de fonction sera exécutée def carré(x). Cependant, cela a certaines implications pour les paramètres par défaut avec des structures de données mutables comme valeurs, que nous aborderons plus tard. L'exécution de la définition de fonction liera le nom de la fonction dans l'espace de noms local actuel (l'espace de noms peut être considéré comme un mappage du nom à la valeur, et ce mappage peut également être imbriqué. Les espaces de noms et les portées seront détaillés dans un autre didacticiel) Introduit) à un objet fonction, qui est un wrapper autour du code exécutable dans une fonction. Cet objet fonction contient une référence à l'espace de noms global actuel, qui fait référence à l'espace de noms global utilisé lors de l'appel de la fonction. De plus, la définition de fonction n'exécute pas le corps de la fonction, qui ne s'exécute que lorsque la fonction est appelée.

Paramètres d'appel de fonction

En plus des paramètres normaux, les fonctions Python prennent également en charge un nombre variable de paramètres. Ces paramètres se répartissent principalement en trois catégories décrites ci-dessous :

1. Valeurs des paramètres par défaut : Cela permet à l'utilisateur de définir certaines valeurs par défaut pour les paramètres de la fonction. Dans ce cas, la fonction peut être appelée avec moins d'arguments. Pour les arguments non fournis lors de l'appel de la fonction, Python utilisera les valeurs fournies par défaut comme valeurs d'argument. L'exemple suivant illustre cette utilisation :

La définition de l'exemple de fonction ci-dessus contient un paramètre de position normale arg et deux paramètres par défaut def_arg et def_arg2. Cette fonction peut être appelée de l'une des manières suivantes :

(1) Seules les valeurs de paramètres de position autres que celles par défaut sont fournies. Dans cet exemple, les paramètres par défaut prennent les valeurs par défaut :

(2) Remplacez certaines valeurs de paramètres par défaut par les valeurs fournies, y compris les paramètres de position non par défaut :

(3) Fournissez des valeurs pour tous les paramètres, qui peuvent être utilisées pour remplacer les valeurs des paramètres par défaut :

Des précautions particulières doivent être prises lors de l'utilisation de structures de données par défaut mutables comme paramètres par défaut. Étant donné que la définition de la fonction n'est exécutée qu'une seule fois, ces structures de données mutables (valeurs de référence) ne sont créées qu'une seule fois lorsque la fonction est définie. Cela signifie que la même structure de données mutable sera utilisée pour tous les appels de fonction, comme indiqué dans l'exemple suivant :

Dans chaque appel de fonction, "Hello World" est ajouté à la liste def_arg Après avoir appelé la fonction deux fois, il y aura deux caractères "Hello World" dans l'argument par défaut. Ceci est important à noter lors de l’utilisation de paramètres par défaut variadiques comme valeurs par défaut. Les raisons de cela deviendront claires lorsque nous discuterons du modèle de données Python.

2. Paramètres de mots-clés : Vous pouvez également appeler des fonctions en utilisant des paramètres de mots-clés sous la forme "kwarg=value". Parmi eux, kwarg fait référence au nom du paramètre utilisé dans la définition de la fonction. Prenons comme exemple la fonction définie ci-dessous avec des paramètres par défaut et autres que ceux par défaut :

Pour démontrer l'appel d'une fonction à l'aide d'arguments de mots-clés, la fonction suivante peut être appelée de l'une des manières suivantes :

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Algorithmes de base et couramment utilisés en PythonArticle suivant:Algorithmes de base et couramment utilisés en Python

Articles Liés

Voir plus