[Python] La definición y el uso de clases anidadas.

En el lenguaje Python, podemos definir fácilmente la clase en la clase y crear instancias de la clase varias veces en la clase; el
método de uso es el siguiente;
intentamos definir una clase Agente
en la clase Mundial ; y tratamos de usar __init__ método de la clase World Instantiate the Agent 10 veces;

class World(object):
    def __init__(self):
        self.agent_lst = [self.Agent() for i in range(10)]

        for index,value in enumerate(self.agent_lst):
            print("the id of No.",index,"class is",id(value))

    class Agent(object):
        def __init__(self):
            print("Agent has been initialized")

if __name__ == '__main__':		# main func

    world = World()

    print("finished")

El resultado del procedimiento es;

Agent has been initialized
Agent has been initialized
Agent has been initialized
Agent has been initialized
Agent has been initialized
Agent has been initialized
Agent has been initialized
Agent has been initialized
Agent has been initialized
Agent has been initialized
the id of No. 0 class is 2343514440656
the id of No. 1 class is 2343514440128
the id of No. 2 class is 2343514441136
the id of No. 3 class is 2343514440848
the id of No. 4 class is 2343546802432
the id of No. 5 class is 2343551371872
the id of No. 6 class is 2343551258736
the id of No. 7 class is 2343551258688
the id of No. 8 class is 2343551258784
the id of No. 9 class is 2343551258832
finished

A partir de los resultados de salida, la clase Agent es efectivamente instanciada 10 veces;
y estas 10 veces corresponden a diferentes variables de clase;
al mismo tiempo, se puede ver en el id que estas variables de clase ocupan diferentes direcciones de memoria;
prueba que son no es lo mismo La variable de clase se vuelve a instanciar continuamente 10 veces;

Supongo que te gusta

Origin blog.csdn.net/ao1886/article/details/109596938
Recomendado
Clasificación