¡Esta es una revisión vieja del documento!
for i in range(0,10)
range(0,10,3) [0, 3, 6, 9]
cadena[:] # toda la cadena cadena[:-1] # toda la cadena menos el último carácter cadena[3:] # toda la cadena a partir del 3er carácter cadena[::-1] # cadena invertida
for i in xrange(0,10): print i
b = False i = 0 while not b: print "hello" if (i >= 4): break i = i + 1
for <var temp> in <agrupacion elementos>:class <nombre>:def __init__ (self)
class cPrueba: def __init__ (self): print "constructor" def method (self): print "metodo" def params (self, num): print num
c = cPrueba () # constructor c.method() # metodo c.params(33) # 33
class cPrueba: def __init__(self, parA = 'Hola'): ....
class cPrueba: def __init__ (self, parA): MyPar = parA
class cPrueba2 (cPrueba): ...
__str__. Si en una clase definimos este método, cuando dicha clase se use como string devolverá lo que retorne dicho método:class cClase: ... def __str__ (self): return "hola" ... obj = cClase() print obj # hola
__doc__), para redefinir este no tenemos que reescribir nada, únicamente debemos, después del nombre de clase, insertar un string, este será su documentación:class cHi: "Clase de prueba" nombre = "" x = cHi() x.nombre = "Pepe" print x.nombre # Pepe print x.__doc__ # Clase de prueba
__cmp__, que reciba los parámetros self y otro elemento. Si es mayor debe devolver un int >0, si es menor <0, si son iguales los dos objetos debe devolver un 0.__repr__, que se usa para mostrar una representación en string del objeto (p.ej. cuando no se use en un print y sólo se ponga su nombre).def __setattr__(self, name, value): def __getattr__(self, name): def __delattr__(self, name):
Mediante esta función enviandole una variable, se nos indicará el tipo del cual es dicha variable:
a = "afdsah" print type(a) # type: str
Para comparar tipos deberemos importar el módulo types y comparar…
import types a = "askfdj" print type(a) == types.ModuleType # Falso, no es un módulo print type(a) == types.StringType # Verdadero, a es un string print type(types) == types.ModuleType # Verdadero, types es modulo
También lo podemos hacer con objetos clases pero con el atributo __class__
class Field: pass f = Field () print f.__class__ == Field # True
i and b → Si i es verdadero devolverá b, si no devolverá i.i or b → Si i es verdadero devolverá i, si no devolverá b. Ejemplo:
i = 5 b = 7 print i and b # 7 print b and i # 5 print i or b # 5 print b or i # 7
if a: print a else: print b
Podría sustituirse por:
print a or b
Desde una función podemos acceder a una variable global, fuera de dicha función, pero no escribirla. Para ello, poder escribirla, debemos acceder a esa variable desde la función habiendo indicado antes que es la global, así: global <variable>
NAME = "Manzana" def show_global(): name = NAME print '(show_global) nombre: %s' % name def set_global(): global NAME NAME = 'Naranja' name = NAME print '(set_global) nombre: %s' % name show_global() set_global() show_global()
Esto imprimiría:
(show_global) nombre: Manzana (set_global) nombre: Naranja (show_global) nombre: Naranja
Pero:
NAME = "Manzana" def show_global(): name = NAME print '(show_global) nombre: %s' % name def set_global(): NAME = 'Naranja' name = NAME print '(set_global) nombre: %s' % name show_global() set_global() show_global()
Imprimiría:
(show_global) nombre: Manzana (set_global) nombre: Naranja (show_global) nombre: Manzana
__main__.dir(math) ← Muestra los elementos del módulo mathdir() ← Muestra los elementos del módulo actualMétodo main, un archivo de código .py puede ser llamado como módulo o como ejecutable, para controlar si la forma de llamada ha sido por como ejecutable:
if __name__ == "__main__": < código inicial >
El módulo __builtin__ es el módulo que se carga inicialmente y por defecto en python. Aún así, si queremos hacer referencia, en concreto a ese haremos:
import __builtin__ __builtin__.<xxxx>
<>.__doc__ y accederás a la documentación de ese método\propiedad: print string.split.__doc__
None equivale a NULL.def Func (a): def func (a): return a * 3 return func(a) print Func("Aa")
print sys.stdin.readline()
sum(range(0,10))mktmp() del módulo tempfile devuelve una cadena con la dirección de un nombre de fichero que podría usarse como fichero temporal (que no tenga el nombre de otro).sys.stdout = PrintRedirect('tmp.log')
PrintRedirect es una clase que guarda el string pasado por el constructor internamente. Cuando se llama a print también se llama al método write de PrintRedirect (def write(self, msg): …) que escribe en el fichero que se llama como el string.import copy ... p2 = copy.copy(p1)
vars(nombreClase)obj.__class__
CPython, es la implementación por defecto del lenguaje y está escrita en C, además de este existen otros dos desarrollos importantes, el de Java (Jython) y el de .NET (IronPython).