2012-05-23 27 views
19

Estoy tratando de repasar mis habilidades de pitón, y estoy dando vueltas con las clases de escritura, pero parece que me he encontrado con un error realmente confuso. A pesar de importar el archivo .py que contiene mi clase, python insiste en que la clase no existe realmente.clase no está definida a pesar de ser importada

definición de clase:

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() 

ahora por lo que yo puedo decir, he seguido toda la documentación a la 't', I argumentos incluso inicializados a Ninguno debido al tiempo de evaluación frente a las limitaciones de tiempo de creación, etc. que parecían ser un problema con algunas personas, me he asegurado de que init sea la primera función definida y aún en vano, aunque tengo la teoría de que la importación no es trabajando como debería ... Cualquier ayuda sería muy apreciada.

Respuesta

27

uso del nombre completo:

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

Hay una forma alternativa de import que traería greeter en su espacio de nombres:

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!") 

Has importado el módulo/paquete, pero necesitas hacer referencia a la clase que contiene.

También puede hacer esto en vez

from testclass import * 

pero cuidado con namespace pollution

Cuestiones relacionadas