Fixed translation and added info (#31834)
This commit is contained in:
committed by
Randell Dawson
parent
1bab86f5f7
commit
c4070d9453
@@ -7,9 +7,9 @@ Si ha leído el wiki de `import statements` entonces me habría visto usar esta
|
||||
Así que recogiendo el mismo ejemplo:
|
||||
```
|
||||
>>> from math import ceil, sqrt
|
||||
>>> # here it would be
|
||||
>>> sqrt(36)
|
||||
<<< 6
|
||||
>>> # aquí sería
|
||||
>>> sqrt(36)
|
||||
<<< 6
|
||||
```
|
||||
|
||||
 [Ejecutar código](https://repl.it/CS5t/1)
|
||||
@@ -17,19 +17,19 @@ Así que recogiendo el mismo ejemplo:
|
||||
O podríamos usar esto:
|
||||
```
|
||||
>>> import math
|
||||
>>> # here it would be
|
||||
>>> math.sqrt(36)
|
||||
<<< 6
|
||||
>>> # en ves, sería
|
||||
>>> math.sqrt(36)
|
||||
<<< 6
|
||||
```
|
||||
|
||||
 [Ejecutar código](https://repl.it/CS5u)
|
||||
|
||||
Entonces nuestro código se vería como `math.sqrt(x)` lugar de `sqrt(x)` . Esto sucede porque cuando usamos `import x` , se crea un espacio de nombres `x` para evitar conflictos de nombre. Tienes que acceder a cada objeto del módulo como `x.<name>` . Pero cuando usamos `from x import y` aceptamos agregar `y` al espacio de nombres global principal. Entonces, al usar esto, debemos asegurarnos de que no tenemos un objeto con el mismo nombre en nuestro programa.
|
||||
Entonces nuestro código tendría `math.sqrt(x)` en lugar de `sqrt(x)` . Esto sucede porque cuando usamos `import x` , se crea un espacio de nombres `x` para evitar conflictos de nombre. Tienes que acceder a cada objeto del módulo como `x.<name>` . Pero cuando usamos `from x import y` aceptamos agregar `y` al espacio de nombres global principal. Entonces, al usar esto, debemos asegurarnos de que no tenemos un objeto con el mismo nombre en nuestro programa.
|
||||
|
||||
> **Nunca use `from x import y` si ya existe un objeto llamado `y`**
|
||||
|
||||
Por ejemplo, en el módulo `os` hay un método `open` . Pero incluso tenemos una función incorporada llamada `open` . Por lo tanto, aquí deberíamos evitar el uso `from os import open` .
|
||||
|
||||
Incluso podemos usar `form x import *` , esto importaría todos los métodos, clases de ese módulo al espacio de nombres global del programa. Esta es una mala práctica de programación. Por favor, evítalo.
|
||||
Incluso podemos usar `form x import *` , esto importaría todos los métodos, clases de ese módulo al espacio de nombres global del programa. Esta es una mala práctica de programación porque estarías incluyendo muchas funciones que ni usarás. Ademas, siempre es mejor usar `x.y()` porque es más facil entender lo que quiera decir. Por favor, evítelo.
|
||||
|
||||
En general, debe evitar la `from x import y` simplemente por los problemas que puede causar en programas a gran escala. Por ejemplo, nunca se sabe si un compañero programador podría querer hacer una nueva función que sea el nombre de una de las funciones existentes. Tampoco sabe si Python cambiará la biblioteca desde la que está importando funciones. Si bien estos problemas no existirán tan a menudo para los proyectos en solitario, como se dijo anteriormente, es una mala práctica de programación y debe evitarse.
|
||||
En general, debe evitar la `from x import y` simplemente por los problemas que puede causar en programas a gran escala. Por ejemplo, nunca se sabe si un compañero programador podría querer hacer una nueva función que sea el nombre de una de las funciones existentes. Tampoco sabe si Python cambiará la biblioteca desde la que está importando funciones. Si bien estos problemas no existirán tan a menudo para los proyectos en solitario, como se dijo anteriormente, es una mala práctica de programación y debe evitarse.
|
||||
|
Reference in New Issue
Block a user