Herramientas de usuario

Herramientas del sitio


script:python:new:language

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
script:python:new:language [2013/08/29 09:37]
alfred [Colecciones]
script:python:new:language [2020/05/09 09:25] (actual)
Línea 12: Línea 12:
 e = True # Crea una variable booleana e e = True # Crea una variable booleana e
 del a # Elimina de memoria la variable a  del a # Elimina de memoria la variable a 
 +a, b = 3, 4 # a = 3, b = 4
 </​code>​ </​code>​
 Pequeños tips en la asignación de variables: Pequeños tips en la asignación de variables:
Línea 100: Línea 101:
 </​code>​ </​code>​
   * ''​var1 is var2''​ devuelve ''​True''​ si la referencia de ''​var1''​ es la misma que la de ''​var2''​.   * ''​var1 is var2''​ devuelve ''​True''​ si la referencia de ''​var1''​ es la misma que la de ''​var2''​.
- 
 ==== Funciones ==== ==== Funciones ====
 === Función básica === === Función básica ===
Línea 123: Línea 123:
 def testArgDir(**kwargs):​ #​ A esta la llamaríamos con un diccionario:​ "​testArgDir(arg1='​ccc',​ arg2='​ddd'​)"​.... def testArgDir(**kwargs):​ #​ A esta la llamaríamos con un diccionario:​ "​testArgDir(arg1='​ccc',​ arg2='​ddd'​)"​....
   print '​kwargs:',​ args # Mostraría "​kwargs:​ {'​arg1':​ '​ccc',​ '​arg2':​ '​ddd'​}   print '​kwargs:',​ args # Mostraría "​kwargs:​ {'​arg1':​ '​ccc',​ '​arg2':​ '​ddd'​}
 +# también podríamos llamarla: testArgDir(**{'​arg1':​ '​ccc',​ '​arg2':​ '​ddd'​})
 </​code>​ </​code>​
 === Combinación de diccionario y lista === === Combinación de diccionario y lista ===
Línea 270: Línea 271:
   * Para agregar un nuevo elemento: ''​lista["​nuevoNombre"​] = valor''​   * Para agregar un nuevo elemento: ''​lista["​nuevoNombre"​] = valor''​
   * Para saber si la clave existe mediante el método ''​has_key()''​ o con el ''​in''​.   * Para saber si la clave existe mediante el método ''​has_key()''​ o con el ''​in''​.
 +  * Puedes pasar un diccionario como argumentos ''<​nowiki>​**kwargs</​nowiki>''​ precediendole ''<​nowiki>​**</​nowiki>''​.
 <code python> <code python>
 if lista.has_key(2):​ if lista.has_key(2):​
Línea 285: Línea 287:
 <code python> <code python>
 del d['​name'​] del d['​name'​]
 +</​code>​
 +
 +Para crear un diccionario a partir de la función dict:
 +<code python>
 +dict(akey='​avalue',​ bkey=3)
 </​code>​ </​code>​
  
Línea 585: Línea 592:
 ===== Notas ===== ===== Notas =====
 ==== Cómo ==== ==== Cómo ====
-=== Comprobar ​el tipo de una variable ​===+ 
 + 
 +=== Saber el directorio del módulo actual ​===
 <code python> <code python>
-type(o) is str +import os 
-isinstance(o, str)+path = os.path.dirname(__file__) 
 +</​code>​ 
 +O de un módulo concreto: 
 +<code python>​ 
 +import a_module 
 +print a_module.__file__
 </​code>​ </​code>​
  
-Saber si es una subclase:+=== Escribir por la consola de error ===
 <code python> <code python>
-issubclass(type(o), str)+import sys 
 +sys.stderr.write('​Writing error!'​)
 </​code>​ </​code>​
  
-Para comprobar si es un string ​(del que seaestas dos son válidas:+=== Detectar cuando sale el programa === 
 +Registraremos una función ​(''​savecouter''​con atexit:
 <code python> <code python>
-isinstance(o,​ basestring) +import atexit 
-isinstance(o, ​(str, unicode))+atexit.register(savecounter)
 </​code>​ </​code>​
 +También lo podemos hacer con un decorador en ''​savecounter'':​ ''​@atexit.register''​. \\ 
 +''​atexit''​ no llamará cuando...
 +  * El programa se acaba debido a un ''​signal''​.
 +  * ''​os._exit()''​ se invoca directamente.
 +  * Se lanza un error fatal en el intérprete.
 +
 +=== Testear la sintaxis de un script ===
 +<​code>​
 +$ python -m py_compile script.py
 +</​code>​
 +
 +=== Checkear el estilo de un script ===
 +  * Mediante el script [[https://​pypi.python.org/​pypi/​pep8|pep8.py]]
 +  * Online, en: [[http://​pep8online.com/​]]
 ==== Errores ==== ==== Errores ====
 === Confundir variables de clase con variables de objeto === === Confundir variables de clase con variables de objeto ===
script/python/new/language.1377769067.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)