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
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
>>
>> -
> 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
>
> --
> 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
<[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
> > 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
<[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
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:
<[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
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
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
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
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
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
> 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
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 (
16 matches
Mail list logo