[Python] Creazione modulo
Buongiorno a tutti, sono abbastanza nuovo nella programmazione ad oggetti ma sto cercando di creare un piccolo oggettino per agevolarmi in un programma... Esso deve leggere un file di configurazione, recuperare delle informazioni e, nella mia intenzione, restituire un dizionario con l'elenco di ciò che ha rilevato. Mi sapete dire in cosa sbaglio? Il messaggio che ho quando lancio lo script è il seguente: * * *config=cnf.conf() * *TypeError: 'dict' object not callable.* CODICE --- FILE rilevaConfigurazione class cnf: def __init__(self,configurazione): from ConfigParser import ConfigParser self.config_filename = configurazione self.config = ConfigParser() self.config.read([self.config_filename]) self.conf={} self.conf['email']={} self.conf['email']['smtp'] = self.config.get('email', 'smtp') self.conf['email']['da'] = self.config.get('email', 'da') def conf(self): return self.conf FILE principale *** import rilevaConfigurazione# modulo che accorpa tutta la configurazione cnf=rilevaConfigurazione.cnf(configurazione) config=cnf.conf() print config['email']['da'] ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Creazione modulo
C'è un pò di casino. Allora, mi permetto di fare qualche appunto: i nomi delle classi iniziano con una lettera grande ed è preferibile dare dei nomi chiari l'import lo puoi fare benissimo fuori dalla classe hai due attributi conf: una variabile di istanza e un metodo. Questo non va bene, da qui l'errore che ottieni. Viene prima trovata la variabile d'istanza (che è un dizionario), ma appena provi a chiamarla come se fosse un metodo ottieni un errore. anche se usi la notazione punto nella chiamata alla classe, nel file principale chiami una variabile come la classe, il che sarebbe da evitare. infine stessa raccomandazione per i nomi di variabile: cerca di mettere nomi autoesplicativi. Aiuta te e chi leggerà il tuo codice ;) Ciao. Il giorno 26 maggio 2010 17.57, Vittorio Zuccala' < vittorio.zucc...@gmail.com> ha scritto: > Buongiorno a tutti, > sono abbastanza nuovo nella programmazione ad oggetti ma sto cercando di > creare un piccolo oggettino per agevolarmi in un programma... > Esso deve leggere un file di configurazione, recuperare delle informazioni > e, nella mia intenzione, restituire un dizionario con l'elenco di ciò che ha > rilevato. > Mi sapete dire in cosa sbaglio? > Il messaggio che ho quando lancio lo script è il seguente: > * > * > *config=cnf.conf() * > *TypeError: 'dict' object not callable.* > > > CODICE > --- > FILE rilevaConfigurazione > > > class cnf: > def __init__(self,configurazione): > from ConfigParser import ConfigParser > > self.config_filename = configurazione > self.config = ConfigParser() > self.config.read([self.config_filename]) > self.conf={} > self.conf['email']={} > self.conf['email']['smtp'] = self.config.get('email', 'smtp') > self.conf['email']['da'] = self.config.get('email', 'da') > > > def conf(self): > return self.conf > > > FILE principale > *** > import rilevaConfigurazione# modulo che accorpa tutta la > configurazione > cnf=rilevaConfigurazione.cnf(configurazione) > config=cnf.conf() > > print config['email']['da'] > > > > ___ > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python > > ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Creazione modulo
Il giorno mer, 26/05/2010 alle 17.57 +0200, Vittorio Zuccala' ha scritto: > Buongiorno a tutti, > sono abbastanza nuovo nella programmazione ad oggetti ma sto cercando > di creare un piccolo oggettino per agevolarmi in un programma... > Esso deve leggere un file di configurazione, recuperare delle > informazioni e, nella mia intenzione, restituire un dizionario con > l'elenco di ciò che ha rilevato. > Mi sapete dire in cosa sbaglio? Hai chiamato "conf" sia il dizionario che il metodo (e il dizionario ha la priorità, perché è un attributo dell'istanza e non della classe). ciaociao Pietro > Il messaggio che ho quando lancio lo script è il seguente: > > config=cnf.conf() > TypeError: 'dict' object not callable. > > > > CODICE > --- > FILE rilevaConfigurazione > > > class cnf: > def __init__(self,configurazione): > from ConfigParser import ConfigParser > > self.config_filename = configurazione > self.config = ConfigParser() > self.config.read([self.config_filename]) > self.conf={} > self.conf['email']={} > self.conf['email']['smtp'] = self.config.get('email', 'smtp') > self.conf['email']['da'] = self.config.get('email', 'da') > > > def conf(self): > return self.conf > > > FILE principale > *** > import rilevaConfigurazione# modulo che accorpa tutta la > configurazione > cnf=rilevaConfigurazione.cnf(configurazione) > config=cnf.conf() > > print config['email']['da'] > > > ___ > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Creazione modulo
On Wed, May 26, 2010 at 05:57:38PM +0200, Vittorio Zuccala' wrote: > Buongiorno a tutti, > sono abbastanza nuovo nella programmazione ad oggetti ma sto cercando di > creare > un piccolo oggettino per agevolarmi in un programma... > Esso deve leggere un file di configurazione, recuperare delle informazioni e, > nella mia intenzione, restituire un dizionario con l'elenco di ci che ha > rilevato. > Mi sapete dire in cosa sbaglio? > Il messaggio che ho quando lancio lo script il seguente: > > config=cnf.conf() > TypeError: 'dict' object not callable. usi self.conf una volta per indicare il dizionario, ed un'altra per indicare il metodo! Ricorda inoltre che la PEP8 sullo stile suggerisce di usare CapWords: Class Names Almost without exception, class names use the CapWords convention. Classes for internal use have a leading underscore in addition. quindi la tua classe potrebbe essere riscritta: class Cnf(object): def __init__(self, configurazione): self.conf... ... def get_conf(self): return self.conf sandro *:-) -- Sandro Dentella *:-) http://sqlkit.argolinux.orgSQLkit home page - PyGTK/python/sqlalchemy ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Autologin
On Mon, 2010-05-17 at 10:29 +0200, andreatagliol...@gmail.com wrote: > saluto tutti, soprattutto Paolo Bernardi che conosco personalmente. Grande system! ;-) Paolo signature.asc Description: This is a digitally signed message part ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python