python代码错误NameError:name' lSimples'没有定义

时间:2018-02-22 07:48:47

标签: python python-3.x

class Nodo:
    """docstring forNodo."""
    def __init__(self, nombre = None, materia= None, sig = None):
        self.nombre = nombre
        self.materia= materia
        self.sig =  sig

    def __str__(self):
        return "% %" %(self.nombre, self.materia)

        class lSimples:
            """docstring forlSimple."""
            def __init__(self):

                self.cabeza = None
                self.cola = None

    def agregar(self, elemento):

        if self.cabeza == None:
            self.cabeza = elemento

        if self.cola != None:
            self.cola.sig = elemento

        self.cola = elemento

if __name__:str == "__main__"

ls = lSimples()
while(True):
    print("-----Menu------ \n"+
    "1. Agregar ")
    num = input("ingrese la opcion")

    if num == 1:
     nombre= input("ingrese el nombre: ")
     materia = input("ingrese la materia:")
     nod = Nodo(nombre, materia)
    ls.agregar(nod)

2 个答案:

答案 0 :(得分:0)

因为lSimples类是在Nodo类中定义的,而你是从全局环境调用lSimples类

答案 1 :(得分:0)

lSimples类在Nodo类中定义,您从lSimples class类之外调用Nodo,即从全局范围调用lSimples。由于Nodo位于NameError内,因此无法从外部访问,因此lSimples发生,因为外部范围内没有class Nodo: """docstring forNodo.""" def __init__(self, nombre = None, materia= None, sig = None): self.nombre = nombre self.materia= materia self.sig = sig def __str__(self): return "% %" %(self.nombre, self.materia) class lSimples: """docstring forlSimple.""" def __init__(self): self.cabeza = None self.cola = None def agregar(self, elemento): if self.cabeza == None: self.cabeza = elemento if self.cola != None: self.cola.sig = elemento self.cola = elemento if __name__ == "__main__": ls = Nodo.lSimples() while(True): print("-----Menu------ \n"+"1. Agregar ") num = input("ingrese la opcion") if num == 1: nombre= input("ingrese el nombre: ") materia = input("ingrese la materia:") nod = Nodo(nombre, materia) ls.agregar(nod)

我认为这可能有所帮助:

df['sum'] = df.iloc[:, 3:].sum(axis=1)