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


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

Rispondere a