Article View: chile.comp.programacion
Article #1172Re: funciones en python
From: Patricio Olivares
Date: Sat, 16 Dec 2006 00:35
Date: Sat, 16 Dec 2006 00:35
41 lines
2218 bytes
2218 bytes
David AzΓ³car wrote:
> Hola, quisiera hacer una pregunta
> se puede hacer un arreglo de funciones en python? al estilo de c
si, mas o menos...
>
> for i in range(x):
> BX[i]*5
Esto no lo entiendo muy bien: parece que estas multiplicando un
'puntero a funcion' con un escalar.
En todo caso, en python las funciones son objetos, eso significa que se
pueden asignar o pasar como parametro directamente (nada de punteros
explicitos, todo son "referencias"). Por ejemplo, aqui la funcion
'ejecuta_todas', recibe una lista de funciones, itera sobre ellas y las
va ejecutando.
def ejecuta_todas(funciones, n, m):
for fun in funciones:
print "%s, %s -> %s" % (n, m, fun(n, m))
# defino una serie de funciones
def suma(a, b):
return a + b
def resta(a, b):
return a - b
# guardo las funciones en una lista
funciones = [suma, resta]
# paso la lista de funciones como parametro y las ejecuto
ejecuta_todas(funciones, 10, 5)
y el resultado es:
10, 5 -> 15
10, 5 -> 5
Technical Details
Message-ID:
<1166229355.606336.135490@16g2000cwy.googlegroups.com>Path:
arc1-ca.pugleaf.net!g2news2.google.com!postnews.google.com!16g2000cwy.googlegroups.com!not-for-mailReferences:
<elv0v5$678$1@localhost.localdomain>Show Full Headers
Complete Article Headers
X-Google-Thread: 1593cb,9b843d3029723c46 X-Google-Attributes: gid1593cb,public X-Google-Language: SPANISH,ASCII Path: arc1-ca.pugleaf.net!g2news2.google.com!postnews.google.com!16g2000cwy.googlegroups.com!not-for-mail From: "Patricio Olivares" <polivare@gmail.com> Newsgroups: chile.comp.programacion Subject: Re: funciones en python Date: 15 Dec 2006 16:35:55 -0800 Organization: http://groups.google.com Lines: 42 Message-ID: <1166229355.606336.135490@16g2000cwy.googlegroups.com> References: <elv0v5$678$1@localhost.localdomain> NNTP-Posting-Host: 200.112.40.66 Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Trace: posting.google.com 1166229361 23675 127.0.0.1 (16 Dec 2006 00:36:01 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Sat, 16 Dec 2006 00:36:01 +0000 (UTC) User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.8) Gecko/20061115 Ubuntu/dapper-security Firefox/1.5.0.8,gzip(gfe),gzip(gfe) Complaints-To: groups-abuse@google.com Injection-Info: 16g2000cwy.googlegroups.com; posting-host=200.112.40.66; posting-account=sbCvHA0AAADHv6uyW6gan4daHhIXTY88