Re: [Python] Gestione dei file di testo (newbie)

2007-11-18 Per discussione ale
Grazie, ho studiato il modulo, adesso mi sono buttato sulla gestione
delle stringhe, credo che fra qualche giorno avr� lo script che mi serve
:-)

* [il 17/11/07, 13:53], Sandro Dentella <[EMAIL PROTECTED]> ha scritto:
> > Esiste qualche funzione che mi permette di cavarmela velocemente?
> 
> Si ConfigParser, un modulo standard e visto che sei nuovo, la pappa già fatta
> dovrebbe essere questa:
> 
> from ConfigParser import ConfigParser
> c = ConfigParser()
> c.read('abookrc')
> 
> class Ref(object):
> def __init__(self, data):
> for key, val in data:
> ## hai " nel file abookrc, quindi li tolgo
> setattr(self, key, val.strip('"'))
> 
> for ref in c.sections():
> r = Ref(c.items(ref))
> print vars(r) ## diamo una occhiata agli oggetti creati...
> 
> 
> 
> sandro
> *:-)
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] lavorare con più classi

2007-11-18 Per discussione Mr . SpOOn
Salve,
utilizzo Python da poco e (forse purtroppo) sono stato fin troppo
abituato a programmare con Java. Ho sempre il pensiero di dover
mettere ogni classe in un file separato.

Mi chiedevo se in python fosse necessario farlo o se è comunque una
buona pratica, nonostante non sia necessaria.

A parte questo, nelle varie prove che sto facendo incontro qualche
problema nell'accedere alle classe e ai metodi.
Ad esempio, ho messo due classi in un unico file e avrei bisogno di
utilizzare un metodo della seconda classe all'interno di un metodo
della prima.

Ad esempio:

class ClasseA:
   def metodoA(self, messaggio)
   b = ClasseB()
   b.stampa(messaggio)

class ClasseB:
   def stampa(self, messaggio)
   print messaggio


Ho cercato di ricreare più o meno la mia situazione. L'errore che ricevo è:

NameError: global name 'ClasseB' is not defined

Dove sbaglio?

Grazie,
Carlo
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] lavorare con p iù classi

2007-11-18 Per discussione Sandro Dentella
> abituato a programmare con Java. Ho sempre il pensiero di dover
> mettere ogni classe in un file separato.
> 
> Mi chiedevo se in python fosse necessario farlo o se è comunque una
> buona pratica, nonostante non sia necessaria.

No! se leggi un po' di codice in giro puoi verificare che non è certo
pratica diffusa. Una classe può anche essere molto piccola, ed alla fine
potresti avere una miriade di file minuscoli... non sapevo che java
imponesse questa regola, del resto non ho mai avvicinato java...

> A parte questo, nelle varie prove che sto facendo incontro qualche
> problema nell'accedere alle classe e ai metodi.
> Ad esempio, ho messo due classi in un unico file e avrei bisogno di
> utilizzare un metodo della seconda classe all'interno di un metodo
> della prima.
> 
> Ad esempio:
> 
> class ClasseA:
>def metodoA(self, messaggio)
>b = ClasseB()
>b.stampa(messaggio)
> 
> class ClasseB:
>def stampa(self, messaggio)
>print messaggio


A parte che hai dimenticato il : nella definizione a me questo codice
funziona... 

a=ClasseA()
a.metodoA('ciao')
ciao



sandro
*:-)
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] lavorare con più classi

2007-11-18 Per discussione Y3s


Il giorno 18/nov/07, alle ore 13:10, Mr.SpOOn ha scritto:


Salve,
utilizzo Python da poco e (forse purtroppo) sono stato fin troppo
abituato a programmare con Java. Ho sempre il pensiero di dover
mettere ogni classe in un file separato.


N :-)



Mi chiedevo se in python fosse necessario farlo o se è comunque una
buona pratica, nonostante non sia necessaria.


Non è necessario e non è una buona pratica in generale. Python non  
forza il programmatore a seguire uno stile particolare, però si  
preferisce inserire nello stesso file sorgente classi, funzioni e  
costanti appartenenti allo stesso dominio logico. Se poi il file  
cresce troppo, ci sono i package...




A parte questo, nelle varie prove che sto facendo incontro qualche
problema nell'accedere alle classe e ai metodi.
Ad esempio, ho messo due classi in un unico file e avrei bisogno di
utilizzare un metodo della seconda classe all'interno di un metodo
della prima.

Ad esempio:

class ClasseA:
   def metodoA(self, messaggio)
   b = ClasseB()
   b.stampa(messaggio)

class ClasseB:
   def stampa(self, messaggio)
   print messaggio


Ho cercato di ricreare più o meno la mia situazione. L'errore che  
ricevo è:


NameError: global name 'ClasseB' is not defined

Dove sbaglio?


Così com'è deve funzionare. Se stanno nello stesso modulo. Verifica i  
nomi...se non trova il nome ClasseB, vale a dire che o il nome è  
sbagliato oppure non sta nel namespace del modulo di ClasseA (oppure  
sono state fatte schifezze varie tipo del ClasseB, o altro ma non  
credo :-) )


Ciao

--
Antonio Valente


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Re: lavorare con più classi

2007-11-18 Per discussione Mr . SpOOn
On Nov 18, 2007 1:10 PM, Mr. SpOOn <[EMAIL PROTECTED]> wrote:
> Ho cercato di ricreare più o meno la mia situazione. L'errore che ricevo è:
>
> NameError: global name 'ClasseB' is not defined
>
> Dove sbaglio?

Ok, scusate la domanda stupida e l'autorisposta che mi sto dando, ma
penso di aver risolto.

Semplicemente nel programma usavo il trucchetto del

if __name__ == "main"

e definivo ClasseB dopo questo blocco if :\
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] lavorare con più classi

2007-11-18 Per discussione Mr . SpOOn
On Nov 18, 2007 1:31 PM, Y3s <[EMAIL PROTECTED]> wrote:
> Così com'è deve funzionare. Se stanno nello stesso modulo. Verifica i
> nomi...

Ho risolto. Nella classe avevo usato il "trucchetto":

if __name__ == "main"

però avevo inserito ClasseB dopo il blocco if. Immagino quindi che non
la vedesse per questo.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] lavorare con più classi

2007-11-18 Per discussione Y3s


Il giorno 18/nov/07, alle ore 14:38, Mr.SpOOn ha scritto:


On Nov 18, 2007 1:31 PM, Y3s <[EMAIL PROTECTED]> wrote:

Così com'è deve funzionare. Se stanno nello stesso modulo. Verifica i
nomi...


Ho risolto. Nella classe avevo usato il "trucchetto":

if __name__ == "main"

però avevo inserito ClasseB dopo il blocco if. Immagino quindi che non
la vedesse per questo.


Si, infatti: in quel modo il nome "ClasseB" viene definito nell'if e  
non nel namespace del modulo, quindi fuori dall'if quel nome non  
esiste più, da qui l'errore.


--
Antonio Valente


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Re: lavorare con più classi

2007-11-18 Per discussione Nicola Larosa
Mr.SpOOn wrote:
> Ho risolto. Nella classe avevo usato il "trucchetto":
> 
> if __name__ == "main"
> 
> però avevo inserito ClasseB dopo il blocco if. Immagino quindi che non
> la vedesse per questo.

La convenzione universalmente usata è che questo if, per l'attivazione
condizionata del main, sia ultimo nel file.

-- 
Nicola Larosa - http://www.tekNico.net/

Most users don't care about the distinction between GET and POST (sadly,
neither do many developers), but I think there is an understanding that
links just lead to another page, whereas buttons perform an action.
I see no reason to violate this. -- Chris Shiflett, December 2006


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] elencare numeri in binario

2007-11-18 Per discussione Facundo Batista
2007/11/16, Mr. SpOOn <[EMAIL PROTECTED]>:

> esiste qualche metodo  per stampare i primi N numeri in forma binaria?
> E la possibilità di stamparli con un numero fissato di bit?

Python 3.0a1+ (py3k:58889, Nov  6 2007, 19:05:24)
[GCC 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> for i in range(8):
... print( bin(i)[2:].zfill(3) )
...
000
001
010
011
100
101
110
111

Saluti.

-- 
.Facundo

Blog: http://www.taniquetil.com.ar/plog/
PyAr: http://www.python.org/ar/
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] elencare numeri in binario

2007-11-18 Per discussione Mr . SpOOn
On Nov 18, 2007 4:45 PM, Facundo Batista <[EMAIL PROTECTED]> wrote:
> Python 3.0a1+ (py3k:58889, Nov  6 2007, 19:05:24)
> [GCC 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
> >>> for i in range(8):
> ... print( bin(i)[2:].zfill(3) )

Mmm... cos'è bin()? La shell non lo riconosce.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] elencare numeri in binario

2007-11-18 Per discussione Eriol
On Sunday 18 November 2007, Mr.SpOOn wrote:
> Mmm... cos'è bin()? La shell non lo riconosce.

E` una built-in che trovi a partire da p3k ;)

-- 
 Eriol - *p = NULL; - EIBTI
 GPG Key ID 0B7C8A19
 http://mornie.org
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] elencare numeri in binario

2007-11-18 Per discussione Mr . SpOOn
On Nov 18, 2007 5:35 PM, Eriol <[EMAIL PROTECTED]> wrote:
> On Sunday 18 November 2007, Mr.SpOOn wrote:
> > Mmm... cos'è bin()? La shell non lo riconosce.
>
> E` una built-in che trovi a partire da p3k ;)

Mmm, interessante. E utilizzare Py3k che svantaggi comporterebbe?
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] elencare numeri in binario

2007-11-18 Per discussione Lawrence Oluyede
On Nov 18, 2007 5:56 PM, Mr. SpOOn <[EMAIL PROTECTED]> wrote:
> On Nov 18, 2007 5:35 PM, Eriol <[EMAIL PROTECTED]> wrote:
> > On Sunday 18 November 2007, Mr.SpOOn wrote:
> > > Mmm... cos'è bin()? La shell non lo riconosce.
> >
> > E` una built-in che trovi a partire da p3k ;)
>
> Mmm, interessante. E utilizzare Py3k che svantaggi comporterebbe?

Beh prima o poi lo faremo tutti ma è un alpha e direi che forse per
imparare è meglio restare sulla 2.x

Nulla toglie però di usare la 2.6alpha come target se ti interessa
arrivare al 3.0 il prima possibile :D


-- 
Lawrence, oluyede.org - neropercaso.it
"It is difficult to get a man to understand
something when his salary depends on not
understanding it" - Upton Sinclair
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python