πŸš€ go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: chile.comp.programacion
Article #1172

Re: funciones en python

#1172
From: Patricio Olivares
Date: Sat, 16 Dec 2006 00:35
41 lines
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-mail
References: <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