2012-05-23 13 views
19

Sto cercando di rispolverare le mie abilità in pitone, e mi piace andare in giro con le lezioni di scrittura, ma mi sembra che mi sia imbattuto in un errore davvero confuso. Nonostante l'importazione del file .py che contiene la mia classe, python insiste sul fatto che la classe non esiste realmente.non è definita nonostante sia stata importata

classe def:

class greeter: 
    def __init__(self, arg1=None): 
     self.text = arg1 

    def sayHi(self): 
     return self.text 

main.py:

#!/usr/bin/python 
import testclass 

sayinghi = greeter("hello world!") 
print sayinghi.sayHi() 

ora, per quanto posso dire, ho seguito tutta la documentazione fino al 't', I argomenti anche inizializzati a Nessuno a causa del tempo di eval vs vincoli di creazione ecc. che sembrava essere un problema con alcune persone, mi sono assicurato che init sia la prima funzione definita come ancora inutilmente valida, anche se ho una teoria che l'importazione non è lavorare come dovrebbe .... Qualsiasi aiuto sarebbe molto apprezzato.

risposta

27

Utilizzare il nome completo:

sayinghi = testclass.greeter("hello world!") 

Esiste una forma alternativa di import che avrebbe portato greeter nel vostro spazio dei nomi:

from testclass import greeter 
13
import testclass 
# change to 
from testclass import greeter 

o

import testclass 
sayinghi = greeter("hello world!") 
# change to 
import testclass 
sayinghi = testclass.greeter("hello world!") 

Hai importato il modulo/pacchetto, ma devi fare riferimento alla classe al suo interno.

Si potrebbe anche fare questo, invece

from testclass import * 

ma poi attenzione namespace pollution

Problemi correlati