tengo un código que se parece a esto:Python importar
from pyparsing import Word, alphas, Optional, ...
# Do stuff ...
# And at the end, save a result to the outside world.
parser = ...
# Now use parser but don't use anything else from pyparsing again.
me gusta tener la conveniencia de llamar from <package> import <etc>
, pero sólo quiero que sea utilizado en un segmento muy pequeño de código. Me temo que estoy contribuyendo a la contaminación del espacio de nombres porque tengo varios pequeños fragmentos como este en el mismo archivo.
¿Cuál es la manera Pythonic de manejar esta situación? Todavía estoy jugando con eso, así que preferiría no escribir y reescribir pyparsing.
tantas veces.
La técnica funciona y es fácil de hacer, pero no es común y una serie de desarrolladores se estremecen con la práctica de utilizar una función para ocultar las importaciones desde el ámbito global. En resumen, no estoy seguro de que esta sea una práctica recomendada. Poner importaciones dentro de las funciones normalmente solo se realiza con la necesidad de retrasar la importación (realizar la importación cuando se llama a una función, no cuando se carga un módulo). Señalo esto porque el OP está pidiendo prácticas Pythonic: hay otras técnicas que hacen el trabajo sin localizar las importaciones. –
@RaymondHettinger Mi impresión es que la mayoría de los desarrolladores simplemente no se molestan en ocultar las importaciones desde el ámbito global. (Sobre todo, ya sea tratar con los valores extra en el espacio de nombres, o importar módulos y usar la notación '. ', posiblemente con un alias 'como') –
Amber
Realmente depende de si espera que los usuarios ejecuten '' help (sumodulo) '' o '' dir (tumodulo) '' para descubrir la API. Ambas técnicas de descubrimiento de API se ven afectadas por el desorden del espacio de nombres. –