Re: [Python] Funzioni come moduli

2008-06-30 Per discussione Daniele Varrazzo
Leonardo ha scritto: >> Mi sembra di capire che tu fai execfile per sfruttare gli effetti secondari >> delle istruzioni eseguite. Se posso, ti suggerisco di creare dei moduli >> plugin che definiscano unicamente una funzione. Puoi "caricare" tutti i >> plugin all'avvio del programma o ad un certo e

Re: [Python] Funzioni come moduli

2008-06-30 Per discussione Daniele Varrazzo
Alessandro Dentella ha scritto: >> A me non sembra che il global namespace del chiamante venga inquinato: >> >> In [1]: ENV = {} >> >> In [2]: execfile('plugin_A.py', ENV) >> >> In [3]: a = ENV['A']() >> >> In [4]: a.test() >> [ ...roba... ] >> >> In [5]: sys >> >> -

Re: [Python] Funzioni come moduli

2008-06-30 Per discussione Alessandro Dentella
> A me non sembra che il global namespace del chiamante venga inquinato: > > In [1]: ENV = {} > > In [2]: execfile('plugin_A.py', ENV) > > In [3]: a = ENV['A']() > > In [4]: a.test() > [ ...roba... ] > > In [5]: sys > > --

Re: [Python] Funzioni come moduli

2008-06-30 Per discussione Leonardo
> Mi sembra di capire che tu fai execfile per sfruttare gli effetti secondari > delle istruzioni eseguite. Se posso, ti suggerisco di creare dei moduli > plugin che definiscano unicamente una funzione. Puoi "caricare" tutti i > plugin all'avvio del programma o ad un certo evento e poi usare le fun

Re: [Python] Funzioni come moduli

2008-06-30 Per discussione Daniele Varrazzo
<[EMAIL PROTECTED]> <[EMAIL PROTECTED]> Message-ID: <[EMAIL PROTECTED]> X-Sender: [EMAIL PROTECTED] Received: from 82.111.147.97 [82.111.147.97] with HTTP/1.1 (POST); Mon, 30 Jun 2008 19:00:39 +0200 User-Agent: RoundCube Webmail/0.1 Content-Type: text/plain; charset="UTF-8" Content-Transfer

Re: [Python] Funzioni come moduli

2008-06-30 Per discussione Alessandro Dentella
> > e di volerlo usare così > > > > LOCS = {} > > execfile('plugin_A.py', {}, LOCS) > > > > a = LOCS['A']() > > a.test() > > > > > > ti verrà sollevato l'errore che perchè 'a' non vede __più__ il modulo > > sys. > > Il problema e' che usi un dizionario per ambiente glob

Re: [Python] Funzioni come moduli

2008-06-30 Per discussione Daniele Varrazzo
<[EMAIL PROTECTED]> <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> Message-ID: <[EMAIL PROTECTED]> X-Sender: [EMAIL PROTECTED] Received: from 82.111.147.97 [82.111.147.97] with HTTP/1.1 (POST); Mon, 30 Jun 2008 18:02:18 +0200 User-Agent: RoundCube Webmail/0.1 Content-Type: text/plain; charset="UTF

Re: [Python] Funzioni come moduli

2008-06-30 Per discussione Alessandro Dentella
On Mon, Jun 30, 2008 at 03:41:39PM +0200, Leonardo wrote: > Alla fine ho risolto con execfile, è incredibile: esegue un file come se > fosse all'interno del file chiamante, passandogli tutte le variabile, le > funzioni, e le classi esistenti. > L'unica cosa è che adesso un modulo è così ad esempio:

Re: [Python] Funzioni come moduli

2008-06-30 Per discussione Daniele Varrazzo
<[EMAIL PROTECTED]> <[EMAIL PROTECTED]> Message-ID: <[EMAIL PROTECTED]> X-Sender: [EMAIL PROTECTED] Received: from 82.111.147.97 [82.111.147.97] with HTTP/1.1 (POST); Mon, 30 Jun 2008 15:56:54 +0200 User-Agent: RoundCube Webmail/0.1 Content-Type: text/plain; charset="UTF-8" Content-Transfer

Re: [Python] Funzioni come moduli

2008-06-30 Per discussione Leonardo
Alla fine ho risolto con execfile, è incredibile: esegue un file come se fosse all'interno del file chiamante, passandogli tutte le variabile, le funzioni, e le classi esistenti. L'unica cosa è che adesso un modulo è così ad esempio: file rejoin.py: #! /usr/bin/python # -*- coding: UTF-8 -*- user

Re: [Python] Funzioni come moduli

2008-06-29 Per discussione Luca
Non so se si tratta di una soluzione stupida o meno. però potresti creare un modulo di questo genere: funzioni/__init__.py (file vuoto) funzioni/shell.py funzioni/etc.py poi importi il modulo con: import funzioni e per vedere quali funzioni ci sono fai un: dir(funzioni) che ti restituisce una

Re: [Python] Funzioni come moduli

2008-06-29 Per discussione Domenico Chierico
On Sun, 2008-06-29 at 18:24 +0100, Daniele Varrazzo wrote: > Ancora più facile è usare execfile() per eseguire un file python in un > dizionario dal quale poi pescare gli oggetti che servono. > > Come vantaggio i tuoi plugin non devono risiedere nel pythonpath, il > risultato > della funzione n

Re: [Python] Funzioni come moduli

2008-06-29 Per discussione Daniele Varrazzo
Domenico Chierico ha scritto: > On Sun, 2008-06-29 at 15:54 +0200, Leonardo wrote: > >> Quindi mi sarebbe d'aiuto un buon metodo per importare moduli a seconda >> di una variabile, o altri modo per definire ed utilizzare funzioni in >> files esterni al "cuore" del programma. >> Grazie per le event

Re: [Python] Funzioni come moduli

2008-06-29 Per discussione Domenico Chierico
On Sun, 2008-06-29 at 15:54 +0200, Leonardo wrote: > Quindi mi sarebbe d'aiuto un buon metodo per importare moduli a seconda > di una variabile, o altri modo per definire ed utilizzare funzioni in > files esterni al "cuore" del programma. > Grazie per le eventuali risposte :) credo che quello che

Re: [Python] Funzioni come moduli

2008-06-29 Per discussione Alessandro Dentella
> Quindi mi sarebbe d'aiuto un buon metodo per importare moduli a seconda > di una variabile, o altri modo per definire ed utilizzare funzioni in > files esterni al "cuore" del programma. > Grazie per le eventuali risposte :) Se ho capito bene stai cercando la funzione __import__: http://docs

[Python] Funzioni come moduli

2008-06-29 Per discussione Leonardo
Salve a tutti. Sto scrivendo un Bot IRC in Python, e sono arrivato a un bot completamente funzionante, così volevo migliorare la struttura, in modo che fosse più facilmente estendibile. Ora, come potete vedere nello script allegato, nella classe Rule ho tante funzioni, una per ogni tipo di regola (