我正在学习python关于类和对象的基础知识。
我用getter、setter和__str__
函数创建了一个基本类对象。
'''
Created on 02/06/2012
@author: rafael
'''
class Alumno(object):
'''
Esta clase representa a un alumno de la ibero
'''
__nombre=None
__idAlumno=None
__semestre=0
def __init__(self,nombre,idAlumno,semestre):
'''
Constructor
'''
self.__nombre=nombre
self.__idAlumno=idAlumno
self.__semestre=semestre
def Alumno(self):
return self
def getId(self):
return self.__idAlumno
def setId(self,idAlumno):
self.__idAlumno=idAlumno
def getNombre(self):
return self.__nombre
def setNombre(self,nombre):
self.__nombre=nombre
def getSemestre(self):
return self.__semestre
def setSemestre(self,semestre):
self.__semestre=semestre
def __str__(self):
info= "Alumno: "+self.getNombre()+" - id: "+self.getId()+" - Semestre:"+str(self.getSemestre())
return info
以及一个python模块,用于导入该类并初始化对象以打印其信息。
'''
Created on 02/06/2012
@author: rafael
'''
from classes import *
if __name__ == '__main__':
alumno=Alumno("Juanito Perez","1234",2)
print alumno
但是我有一个NameError异常,所以我必须以这种方式创建我的对象:
alumno=Alumno.Alumno(param,param,param)
但我想走这条路:
alumno=Alumno(param,param,param)
有人能给我解释一下上课的方式或我做错了什么吗?
啊,欢迎来到python名称空间冗长的问题。
与Java不同,如果在Foo.Java文件中有一个名为Foo的类,则类不会自动提升到模块名称空间中。
如果您想要此行为,则需要执行以下操作:
还有其他困难的办法。例如,如果您有一个目录:
你可以在
__init__.py
中进行from YourClass import YourClass
。因此,在子模块之外,您可以执行import submodule.YourClass
或from submodule import YourClass
并获得所需的行为。相关问题 更多 >
编程相关推荐