Apuntes funciones y decoradores de Python
Enviado por FreddyMT • 19 de Marzo de 2022 • Apuntes • 457 Palabras (2 Páginas) • 74 Visitas
palyndrome
def is_palindrome (string: str) -> bool:
string = string.replace(" ","").lower()
return string == string[::-1]
def run():
return is_palindrome(Ana)
if __name__ == '__main__':
run()
mypy te permite ver errores de tipado
Scope: alcance de las variables "Una variable solo esta disponible dentro de la region donde fue creada"
eje: Scope local
def my_func():
y = 5
print(y)
my_func()
eje: Global Scope
y = 5 #Global Scope
def my_func():
print(y)
def my_another_func():
print(y)
Eje2: Alcance local y global
z = 5
def my_func():
z = 2
print(z)
print(z)
Out: 2
5
4) Closures
Nested Functions (Funciones anidadas): funciones creadas dentro de una funcion
Eje:
def main():
a = 3
def nested():
print(a)
nested()
main()
Eje:
def main():
a = 3
def nested():
print(a)
return nested
my_func = main()
my_func() # 1
Closures: Cuando la variable de un Scope superior es recordada aun siendo borrada
Reglas para encontrar un closure:
· Debemos tener una nested funcion.
· La nested function debe referenciar un valor de un scope superior
· La funcion que envuelve a la nested function debe retornarla tambien
Eje:
def main():
a = 5
def nested():
print(a)
return nested
my_func() = main()
my_func()
del(main)
my_func() # 5 "Closures"
Eje:
def make_multiplier(x):
def multiplier(n):
return x * n
return multiplier
times10 = make_multiplier(10)
times4 = make_multiplier(4)
print(times10(3))
print(times4(5))
print(times10(times4(2)))
# 30 , 20, 80
Decoradores "Closure especial" Es una funcion que recibe como parametro otra funcion, le añade cosas, y retorna una funcion
...