|
32 | 32 | 5.6 <a href = "#python-para-todos">Python para todos.</a> |
33 | 33 | 6. <a href = "#trucos">Trucos y consejos.</a> |
34 | 34 | 6.1 <a href = "creando_un_entorno_virtual.md">Creando un entorno virtual Python.</a> |
35 | | - 6.2 <a href = "#estructura">Estructura de un script en Python.</a> |
36 | | - 6.3 <a href = "#guia">Guía de estilo PEP8.</a> |
| 35 | + 6.2 <a href = "estructura_script_python.md">Estructura de un script en Python.</a> |
| 36 | + 6.3 <a href = "guia_estilo_pep8.md">Guía de estilo PEP8.</a> |
37 | 37 | 7. <a href = "#codigos">Códigos Python.</a> |
38 | | - 7.1 <a href = "https://github.com/ejdecena/tutorial_python/blob/master/codigos/hola_mundo.py">Hola Mundo Python!</a> |
| 38 | + 7.1 <a href = "codigos/hola_mundo.py">Hola Mundo Python!</a> |
39 | 39 | </pre> |
40 | 40 |
|
41 | 41 | <a name = "python"></a> |
@@ -166,82 +166,4 @@ Siéntete en la libertad de usar libros para aprender *Python* cuando desees, po |
166 | 166 |
|
167 | 167 | ## 6. Trucos y consejos. |
168 | 168 |
|
169 | | -<a name = "creando"></a> |
170 | | - |
171 | | -### 6.1 Creando un entorno virtual Python. |
172 | | - |
173 | | -Cuando se está desarrollando software en *Python*, es común utilizar diferentes versiones de un mismo paquete. Un *virtualenv*, o entorno virtual de *Python*, es un ambiente creado con el objetivo de aislar recursos como librerías y entornos de ejecución del sistema principal o de otros entornos virtuales. Esto significa que en el mismo sistema, computadora, es posible tener instaladas múltiples versiones de una misma librería sin crear ningún tipo de conflicto. |
174 | | - |
175 | | -Para crear y utilizar un entorno virtual debe instalarse `virtualenv`; pero antes debe instalarse el manejador de paquetes de *Python* `pip`: |
176 | | - |
177 | | -```bash |
178 | | -$ sudo apt-get install python3-pip |
179 | | -``` |
180 | | -Luego instalamos `virtualenv`: |
181 | | -```bash |
182 | | -$ sudo pip3 install virtualenv |
183 | | -``` |
184 | | -#### Creando un entorno virtual. |
185 | | - |
186 | | -Para crear el entorno virtual debes dirigirte a la carpeta donde lo deseas crear. Se crea con el comando `virtualenv` seguido del nombre que le quieras poner, como lo indica el siguiente ejemplo: |
187 | | -```bash |
188 | | -$ virtualenv nombre_de_tu_entorno -p python3 |
189 | | -``` |
190 | | -Esto creará una nueva carpeta dentro del directorio que hayamos escogido, allí se instalarán todos los paquetes que desees utilizar. |
191 | | - |
192 | | -#### Activar / Desactivar entorno virtual. |
193 | | -Para **activar** el entorno virtual debes dirigirte a la nueva carpeta anteriormente creada y ejecuta: |
194 | | -```bash |
195 | | -$ source nombre_entorno_virtual/bin/activate |
196 | | -``` |
197 | | -Para **desactivar** el entorno virtual simplemente ejecuta: |
198 | | -```bash |
199 | | -$ deactivate |
200 | | -``` |
201 | | -<a href = "#indice">[IR AL ÍNDICE]</a> |
202 | | - |
203 | | -<a name = "estructura"></a> |
204 | | - |
205 | | -### 6.2 Estructura de un script en Python. |
206 | | - |
207 | | -```python |
208 | | -1 #!/usr/bin/env python3 |
209 | | -2 |
210 | | -3 |
211 | | -4 if __name__ == "__main__": |
212 | | -5 pass |
213 | | -6 |
214 | | -``` |
215 | | - |
216 | | -La **línea 1** se conoce como *shebang*, se reconoce al iniciar con los caracteres `#!` cuando están al principio de la primera o segunda línea de un archivo de texto. Indica que el archivo es un *script* y le dice al sistema operativo qué intérprete ha de usarse para ejecutarlo. Los sistemas operativos *Linux* (y otros sistemas *Unix-like*) soportan de forma nativa esta característica. |
217 | | - |
218 | | -Entre los ejemplos de *shebang* tenemos: |
219 | | - |
220 | | -* `#!/usr/bin/python3` -> Usar el ejecutable *Python* localizado en `/usr/bin` |
221 | | -* `#!/usr/bin/env python3` -> Usa `env` para buscar la variable de entorno "python3" en el PATH para ejecutar el script con ese programa. |
222 | | - |
223 | | -Los sistemas operativos *Windows* no tienen soporte nativo para *shebang*. En cambio, usan la *extensión* del archivo para asociarlo al ejecutable de turno. Por lo tanto, la línea de *shebang* sería completamente ignorada en el caso de los sistemas Windows. |
224 | | - |
225 | | -La **línea 4** está asociada al modo de funcionamiento del intérprete *Python*. Cuando el intérprete lee un archivo de código, **ejecuta todo el código que se encuentra en él**. Todo módulo (archivo de código) en *Python* tiene un atributo especial llamado `__name__` que define el *espacio de nombres* en el que se está ejecutando el archivo. Este atributo es usado para identificar de forma única un módulo en el sistema de importaciones. |
226 | | - |
227 | | -Por su parte `__main__` es el nombre del *ámbito* en el que se ejecuta el código de nivel superior (tu programa principal). |
228 | | - |
229 | | -El intérprete pasa el valor del atributo a `"__main__"` si el módulo se está ejecutando como programa principal (cuando lo ejecutas llamando al intérptrete en la terminal con `python my_modulo.py`, haciendo doble click en él, ejecutandolo en el intérprete interactivo, etc ). |
230 | | - |
231 | | -Si el módulo NO es llamado como programa principal, sino que es **importado** desde otro módulo, el atributo `__name__` pasa a contener el **nombre del archivo** en sí. |
232 | | - |
233 | | -Es decir, si tienes un archivo llamado `mi_modulo.py`, si lo ejecutamos como programa principal el atributo `__name__` será `"__main__"`, si lo usamos importándolo desde otro módulo (`import mi_modulo`) el atributo `__name__` será igual a `"mi_modulo"`. |
234 | | - |
235 | | -En resúmen, básicamente lo que haces usando `if __name__ == "__main__":` es ver si el módulo ha sido importado o no. Si no se ha importado (se ha ejecutado como programa principal) ejecuta el código dentro del condicional. |
236 | | - |
237 | | -Una de las razones para hacerlo es que, a veces, se escribe un módulo (un archivo .py) que se puede ejecutar directamente, pero que alternativamente, también se puede importar y reutilizar sus funciones, clases, métodos, etc. en otro módulo. Con esto conseguimos que la ejecución sea diferente al ejecutar el módulo directamente que al importarlo desde otro programa. |
238 | | - |
239 | | -<a href = "#indice">[IR AL ÍNDICE]</a> |
240 | | - |
241 | | -<a name = "guia"></a> |
242 | | - |
243 | | -### 6.3 Guía de estilo PEP8. |
244 | | - |
245 | | -En la organización *Python* existen lo que se llaman *PEP's* o [*Python Enhancement Proposals*](http://www.python.org/dev/peps/pep-0001/#what-is-a-pep), los cuales son documentos que proveen información a la comunidad de *Python* o describen nuevas características del lenguaje, su proceso de desarrollo o su entorno. Uno de estos *PEP's* es el *PEP8*, el cual está dedicado a la recopilación de los estándares de estilo seguidos por los desarrolladores de *Python* a la hora de escribir código para la librería estandar. Un listado completo de los *PEP's* se puede encontrar [aquí](http://www.peps.io/), mientras que una versión en castellano del *PEP8* se puede descargar de [aquí](documentos/guia_pep8_es.pdf) en este repositorio. |
246 | 169 |
|
247 | | -<a href = "#indice">[IR AL ÍNDICE]</a> |
0 commit comments