View Single Post
Old 04-01-2010, 15:25   #1
Unrue
Senior Member
 
L'Avatar di Unrue
 
Iscritto dal: Nov 2002
Messaggi: 6076
[Python] Problema con i packages

Ciao a tutti,
sto cercando di scrivere un piccolo esempio di ereditarietà in Python utilizzando moduli e packages.

Al momento ho una dir Animale, che ha al suo interno le dir Animali, Cane, Gatto. Animali quindi è la superclasse di Cane e Gatto.Ho il file __init__.py in tutti i rami di tali dir e in quella principale.

All'interno di Animali ho animale.py:

Codice:
class Animale:
   def __init__(self, nome, razza):
	self.nome = nome
	self.razza = razza

   def visualizza(self):
	print self.nome
	print self.razza
Questa è cane.py:

Codice:
class Cane(Animale):
    def __init(self, nome, razza, verso):
	Animale.__init__(nome, razza)
	self.verso = verso

    def visualizza(self):
        Animale.visualizza(self)
	print self.verso
        print "Sono un cane"
Infine questa è gatto.py:

Codice:
class Gatto(Animale):
    def __init(self, nome, razza, verso):
	Animale.__init__(nome, razza)
	self.verso = verso

    def visualizza(self):
        Animale.visualizza(self)
	print self.verso
        print "Sono un gatto""
Ora, dopo aver definito il percorse del package nella variabile di ambiente PYTHONPATH ed aver scritto:

Codice:
from Animali import *
alla creazione di un oggetto Animale mi viene detto:

a= Animale("b","c")
name 'Animale' is not defined

E' chiaro che sbaglio qualcosa nell'indicare i moduli, ma allora perché non dà errori quando scrivo i comandi di import?

Se invece scrivo:

Codice:
from Animali import Animale
l'errore è :

Codice:
'module' object is not callable
Quindi non si riferisce alla classe ma al nome del modulo.

Ultima modifica di Unrue : 04-01-2010 alle 15:37.
Unrue è offline   Rispondi citando il messaggio o parte di esso