- Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFunctions.py
More file actions
Latest commit
116 lines (81 loc) · 2.6 KB
/
Copy pathFunctions.py
File metadata and controls
116 lines (81 loc) · 2.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#!/usr/bin/env python
# encoding: utf-8
"""
Functions.py
Created by Marko on 2010-02-27.
Copyright (c) 2010 Bstards. All rights reserved.
"""
# La sentencia continua de la definicion de la funcion es la cadena de Documentacion #docstring
# http://docs.python.org/tutorial/controlflow.html#tut-docstrings
deffib(n): # write Fibonacci series up to n
"""Print a Fibonacci series up to n."""
a, b=0, 1
whilea<n:
printa, ", ",
a, b=b, a+b
fib(10)
# Definicion de funcion con argumentos con valor por default
deffib2( n=0 ):
a, b=0, 1
result= [a]
whilea<n:
ifa:
result.append( a )
a, b=b, a+b
returnresult
print
printfib2()
printfib2(10)
defunaFuncion( parametroRequerido, opcional1=1, opcional2=2, opcional3="-", opcional4=None ):
print"[parametroRequerido: ", parametroRequerido, ", ",
print"opcional1: ", opcional1, ", ",
print"opcional2: ", opcional2, ", ",
print"opcional3: ", opcional3, ", ",
print"opcional4: ", opcional4, "]"
unaFuncion( 90 )
unaFuncion( 80, "a" )
unaFuncion( 70, 10 )
unaFuncion( 60, 10, 20 )
unaFuncion( 50, 10, 'oO0Oo', 30 )
unaFuncion( 40, 10, 20, 30, 50 )
# Es posible pasar los valores con el formato llave:valor, como un diccionario, mapa
unaFuncion(70, opcional3='GgG')
"""
Es posible recibir una lista de parametros o un dicionario de parametros
"""
deffuncionCompleja( unParametro, *lista, **diccionario ):
print"Parametro simple: ", unParametro, ', ',
print"lista Parametros: ", lista, ', ',
print"diccionario: ", diccionario
funcionCompleja('sdf', 'Kolopolo', 2, 3, "Ultimo", valor1="12", valor2="o00o")
funcionCompleja(234, 'Koleoptero', 2, 3, "Ultimo", valor1="12", valor2=00)
"""
Es posible pasar una lista pero se especifica que debe ser desempacada con el operador *,
distribuyendo los valores de la lista sobre los parametros
"""
defdesempacaParametros( unParametro, *lista ):
print"Parametro simple: ", unParametro, ", ",
print"Lista: ", lista
unaLista= ['yepa', 'yepa', 33]
desempacaParametros( unaLista )
# Usando el operador
desempacaParametros( *unaLista )
# Decoradores
print'===================[ Decoradores ]====================='
defdecorador( funcion ):
defnuevaFuncion( *args ):
print'Llamada a la funcion: ', funcion.__name__
retorno=funcion(*args)
returnretorno
returnnuevaFuncion
defsaludo( mensaje ):
printmensaje
saludo('Hola Mundo')
f=decorador( saludo )
f('Hola Mundo')
# Al anteponer @ y el nombre del decorador a la funcion que queremos decorar,
# todas las invocaciones estaran decoradas
@decorador
defsaludo2( mensaje ):
printmensaje
saludo2( 'Hola mas Mundo' )