Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
info:cursos:python:codigofacilito [07/09/2021 06:40] – [función REDUCE] mateinfo:cursos:python:codigofacilito [10/06/2022 02:28] (actual) – [curso python (código facilito)] mate
Línia 1: Línia 1:
 = curso python (código facilito) = curso python (código facilito)
-[[https://codigofacilito.com/videos/tutorial_python_listas]]+{{tag>python}} 
 +[[https://codigofacilito.com/videos/tutorial_python_28_-_clases_decoradoras]]
 == que es python == que es python
   * reminiscencias perl, pero más natual (pseudocódigo)   * reminiscencias perl, pero más natual (pseudocódigo)
Línia 415: Línia 416:
 print reduce (lf,lo) print reduce (lf,lo)
 print lf(3,4) print lf(3,4)
 +</code>
 +
 +== comprensión de listas
 +  * reemplaza en python 3 a map, filter
 +  * la operación a realizar se pone primero, las condiciones o recorridos detrás ¿?¿?¿?
 +  * <code python>
 +l = [1,2,-3,4]
 +l2 = ["H","O","L","A"]
 +
 +print [num for num in l if num>0]
 +print [c * num for c in s
 +            for num in l2]
 +print [c * num for c in s
 +            for num in l2
 +      if num > 0]
 +</code>
 +
 +== Generadores
 +  * equivalente a comprensión de listas
 +  * recorre la lista, no devuelve una lista, si no los elementos
 +  * <code python>
 +l = [1,2,-3,4]
 +l2 = ["H","O","L","A"]
 +
 +print [num for num in l if num>0]
 +print [c * num for c in s
 +            for num in l2]
 +r1 = (c * num for c in s
 +            for num in l2
 +      if num > 0)
 +print r1.next()
 +print r1.next()
 +
 +for letra in r1:
 +  print letra
 +  
 +def factorial(n):
 +  i = 1
 +  while n > 1:
 +    i = n*i
 +    yield i # ? objeto generador
 +    n -= 1
 +
 +for e in factorial(5):
 +  print e
 +</code>
 +  
 +== Decoradores
 +  * función que recibe una función y devuelve una función decorada
 +  * es decir, podemos añadir cosas antes (y supongo que después) de la ejecución de la función pasada por parámetro
 +  * <code python>
 +def decorador(funcion):
 +  def funcionDecorada(*args, **kwargs):
 +    print "función ejecutada ", funcion.__name__
 +    funcion(*args,**kwargs)
 +    
 +  return funcionDecorada
 +
 +def resta(n,m):
 +  print n-m
 +  
 +#decorando
 +print decorador(resta)(5,3) # equivalente a resta(5,3)
 +decorada = decorador(resta)
 +decorada(6,3)
 +
 +@decorador
 +def multi(n,m):
 +  print n*m
 +
 +multi(2,4)
 +</code>
 +  * se podrían anidar varios decoradores, se ejecutan por orden
 +<code python>
 +loggeado = False
 +usuario = "codigoFacilito"
  
 +def admin(f):
 +  def comprobar(*args,**kwargs):
 +    if loggeado:
 +      f(*args,**kwargs)
 +    else:
 +      print "no tiene permisos para ejecutar",f.__name__
 +    return comprobar
 +  
 +@admin
 +def resta(n,m):
 +  print n-m
 </code> </code>
  • info/cursos/python/codigofacilito.1631022027.txt.gz
  • Darrera modificació: 07/09/2021 06:40
  • per mate