neto = lambda bruto, iva=21: bruto + (bruto*iva/100) print neto(100) # 121 def suma (n): return lambda x: x + n f=suma(2) g=suma(8) print f(10), g(10) # 12, 18 print suma(5)(11) # 16
foo = [2, 18, 9, 22, 17, 24, 8, 12, 27] print filter(lambda x: x % 3 == 0, foo) # [18, 9, 24, 12, 27] print map(lambda x: x * 2 + 10, foo) # [14, 46, 28, 54, 44, 58, 26, 34, 64] print reduce(lambda x, y: x + y, foo) # 139
def check(f): def wrapper(*args, **kwargs): if 0 in args: return None else: return f(*args, **kwargs) return wrapper @check def inv(*args): return [1.0/x for x in args] print(inv(1,2,3)) print(inv(1,0,3)) # None
# Iterador implícito en el for for i in "papanatas": print i, # p a p a n a t a s # Iterador explícito it = iter("papanatas") it.next() # p it.next() # a it.next() # p it.next() # a it.next() # n it.next() # a it.next() # t it.next() # a it.next() # s it.next() # Error
a = xrange(1000000) # a no es una lista b = (n for n in a if n%2==0) # b no es una lista print b # <generator object <genexpr> at 0xb77c939c> for i in b: print i, # 2 4 6 8 10 ... def generador(): i = 0 while True: # un iterador infinito yield i # devuelve i en este punto i = i + 1 mi_gen = generador() # creamos el generador mi_gen.next() # 0 mi_gen.next() # 1 mi_gen.next() # 2
class miclase: def __init__(self, n1, n2): self.n1 = n1 self.n2 = n2 # Representación del objeto como string def __str__(self): return "Soy un miclase con: n1=" +str(self.n1)+", n2="+str(self.n2) # Permite asignar nuevos atributos def __setattr__(self, name, val): self.__dict__[name] = val # Se llama con atributos no conocidos def __getattr__(self, name): return "No se lo que es "+name o = miclase(2, 5) print o # Soy un miclase con: n1=2, n2=5 o.n3 = 5 print o.n3 # Imprime "5" print o.n4 # Imprime "No se lo que es n4"
Administración de Sistemas e Redes <ASR.USC[at]gmail.com>
Tomás Fernández Pena <tf.pena[at]usc.es>
Última actualización: 30-09-15 17:44 por tomas
Curso de Administración de Sistemas y Redes por Tomás Fernández Pena se distribuye bajo la licencia Creative Commons Recoñecemento-Compartir baixo a mesma licenza. 3.0 España.
Trabajo original en persoal.citius.usc.es/tf.pena/ASR.