[Python] A definição e uso de classes aninhadas

Na linguagem python, podemos definir facilmente a classe na classe e instanciar a classe várias vezes na classe; o
método de uso é o seguinte;
tentamos definir uma classe Agente
na classe Mundial ; e tentamos usar a classe __init__ método de World Instanciar a classe Agente 10 vezes;

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

O resultado do procedimento é;

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 dos resultados de saída, a classe Agent é de fato instanciada 10 vezes;
e essas 10 vezes correspondem a diferentes variáveis ​​de classe;
ao mesmo tempo, pode-se ver a partir do id que essas variáveis ​​de classe ocupam diferentes endereços de memória; isso
prova que são não é o mesmo A variável de classe é continuamente reinstanciada 10 vezes;

Acho que você gosta

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