Définition standard de l'espace de noms en Python

高洛峰
Libérer: 2017-03-03 15:15:45
original
1178 Les gens l'ont consulté

La conception d'API est une activité artistique. Il doit souvent être simple, facile à comprendre, soigné et peu fastidieux.

Souvent, nous encapsulons une méthode dans la couche inférieure pour une utilisation de haut niveau, et d'autres méthodes ne servent qu'à assister cette méthode.
C'est-à-dire qu'il nous suffit d'exposer cette méthode, et nous n'avons pas besoin de nous soucier de la façon dont cette méthode est implémentée, ni de l'existence d'autres méthodes auxiliaires.
En Python, il existe plusieurs stratégies pour garder les espaces de noms propres.

1. Les noms de variables commençant par un trait de soulignement _
Les variables commençant par un trait de soulignement _ ne seront pas importées lorsque d'autres modules de xxx importent *.
Si vous regardez le code source de decimal, vous constaterez que les modules importés ont été remplacés plusieurs fois par des alias commençant par un trait de soulignement _.
http://hg.python.org/cpython/file/2.7/Lib/decimal.py tel que

import copy as _copy
import math as _math
import numbers as _numbers
Copier après la connexion

ce n'est pas chiant, c'est juste pour éviter de polluer l'espace de noms

2 Define __all__
La méthode magique de Python est vraiment flexible.
Supposons qu'il y ait 3 méthodes a(), b(), c() dans mon module
Je veux juste exposer a, pas b et c.
À l'heure actuelle, __all__=[a]
Lorsque d'autres modules sont importés depuis xxxmodule import *, seul a est importé.
De plus, lorsque les développeurs lisent le code source et voient __all__, ils savent immédiatement quelles méthodes doivent être exposées, au lieu d'avoir un tas de code sans aucun moyen de démarrer.

3. Après avoir utilisé cette variable, supprimez
via del xxx.
Cela réduit le nombre de variables qui remplissent l'écran dans dir (xxxmodule).
De même, dans le code source de decimal, vous pouvez voir qu'après avoir utilisé le module d'expression régulière re, il a été supprimé à l'aide de del re.
Une autre méthode consiste à placer l'instruction import dans la fonction pour la limiter à la portée locale. Je pense que cette méthode n’est pas pythonique, donc je ne la recommande pas.

Pour plus d'articles liés à la définition standard des espaces de noms en Python, veuillez faire attention au site Web PHP chinois !

Étiquettes associées:
source:php.cn
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