Re: [Python] lavorare con più classi

Y3s y3s a katamail.com
Dom 18 Nov 2007 13:31:12 CET


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.

Noooo :-)


> 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




More information about the Python mailing list