Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- #
- """
- # Ambito de las variables
- # 1) Local (similar al paso por valor)
- def f():
- v = 10
- print(v)
- v = 5
- f() # imprime v=10 (valor local de v en la funcion f)
- print(v) # imprime 5 (valor local de v fuera de la función f)
- # 2) Global (similar al paso por referencia)
- def f():
- global v # accedo al valor de v fuera de la función
- v = 10
- print(v)
- v = 5
- f() # imprime v=10 (valor global de la funcion f)
- print(v) # imprime 10 (valor global de la función f)
- # Paso por valor y referencia
- # En el paso por valor se crea una copia local de la variable
- # En el paso por referencia es como si se pasara en forma global
- # En Python no es tan claro el paso por valor y referencia
- # Paso por valor
- def f(dato):
- dato = 0 # recibo 5 y lo sobreescribo con 0
- print(dato)
- dato = 5
- f(dato) # paso por valor 5 a entrada
- print(dato) #imprimo el valor local de 5
- # No funciona igual (paso por valor) si es una lista
- def f(dato):
- dato.append(1) # recibe [2,3,4] y le añade 1 EL APPEND FUNCION GLOBALMENTE
- print(dato) # imprime [2,3,4,1]
- dato = [2,3,4]
- f(dato)
- print(dato) # imprime [2,3,4,1] y no [2,3,4]
- # Otro caso
- def f(dato):
- dato = [] # crea una copia local de dato FUNCIONA LOCALMENTE
- print(dato) # imprime []
- dato = [2,3,4]
- f(dato)
- print(dato) # imprime [2,3,4] y no []
- """
- # argumentos de longitud variable
- def sumar(numeros):
- suma = 0
- for numero in numeros:
- suma += numero
- print(suma)
- sumar([1,2,3,4,5,6,7,8,9])
- def sumar2(*args):
- suma = 0
- for n in args:
- suma += n
- print(suma)
- sumar([1,2,3,4,5,6,7,8,9])
- def sumar(**kwargs):
- print(type(kwargs)) #keyword argument = kwargs
- print(kwargs)
- total = 0
- for n in kwargs:
- total+= kwargs[n]
- print(total)
- sumar(a=5, b=20, c=23)
Advertisement
Add Comment
Please, Sign In to add comment