python代码错误名称错误:未定义名称“lSimples”

2024-10-01 17:37:15 发布

您现在位置:Python中文网/ 问答频道 /正文

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)

Tags: selfnoneinputifdefclassdocstringsig
2条回答

lSimples类是在Nodo类中定义的,您正在从Nodo类的外部(即全局范围)调用lSimples class。由于lSimplesNodo内部,不能从外部访问,因此{}发生了,因为在外部作用域中没有{}。在

我认为这可能有助于:

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)

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

相关问题 更多 >

    热门问题