Maison > développement back-end > Tutoriel Python > Comment rendre une fonction personnalisée en Python disponible dans le monde entier ?

Comment rendre une fonction personnalisée en Python disponible dans le monde entier ?

WBOY
Libérer: 2023-05-08 09:43:07
avant
1413 Les gens l'ont consulté

Lorsque nous développons des projets Python, nous écrivons souvent des fonctions d'outils. Afin d'utiliser cette fonction d'outil dans plusieurs fichiers .py du projet, vous devez l'importer à plusieurs endroits, ce qui est très gênant.

Par exemple, l'exemple suivant :

Comment rendre une fonction personnalisée en Python disponible dans le monde entier ?

Utilisez l'outil clean_msg dans les fichiers A.py et C.py​ . fonction, alors ils doivent tous importer clean_msg depuis util.py​. Cela semble naturel.

Mais aujourd'hui, en regardant le code source de icecream/builtins.py[1], j'ai soudainement découvert une utilisation avancée qui nous permet d'utiliser les fonctions de l'outil tout comme la fonction d'impression de Python, non. besoin d'importer, mais utilisé directement.

Regardons d'abord l'effet :

Comment rendre une fonction personnalisée en Python disponible dans le monde entier ?

Veuillez noter que A.py et C.py​, je je ne les ai pas importés. clean_msg utilise plutôt cette fonction directement. Et ça fonctionne tout à fait bien.

Le principe clé est dans le fichier d'entrée main.py, les 3 lignes que j'ai encadrées :

import builtins

from util import clean_msg
setattr(builtins, 'clean_msg', clean_msg)
Copier après la connexion

En Python, toutes les fonctions ou classes intégrées sont dans le module intégré , il peut donc être utilisé directement dans le code sans importation. Il ne nous reste plus qu'à enregistrer notre fonction d'outil personnalisée dans le module intégré, afin qu'elle puisse avoir le même effet que la fonction intégrée.

Si vous souhaitez enregistrer une fonction d'outil en tant que fonction intégrée, il vous suffit de l'importer dans le fichier d'entrée, puis d'utiliser setattr pour la définir comme attribut du module intégré. Le deuxième paramètre est le nom lorsque vous souhaitez l'appeler globalement, et le troisième paramètre est la fonction de l'outil que vous devez enregistrer. Le nom peut être différent du nom de la fonction utilitaire, à condition qu'il ne duplique pas une fonction intégrée existante.

Une fois l'enregistrement terminé, pendant toute la durée d'exécution de ce projet, cette fonction d'outil peut être appelée directement via le nom enregistré dans n'importe quel fichier .py, tout comme l'appel de la fonction intégrée.

Références

[1] icecream/builtins.py : https://github.com/gruns/icecream/blob/master/icecream/builtins.py​# 🎜 🎜#

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!

Étiquettes associées:
source:51cto.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal