[Python] Creazione modulo

2010-05-26 Per discussione Vittorio Zuccala'
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

2010-05-26 Per discussione Valerio Turturici
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

2010-05-26 Per discussione Pietro Battiston
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

2010-05-26 Per discussione Alessandro Dentella
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

2010-05-26 Per discussione Paolo Bernardi
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