"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que a RECINDA `super ()` quebra seu código Python?

Por que a RECINDA `super ()` quebra seu código Python?

Postado em 2025-03-23
Navegar:872

 Why Does Rebinding `super()` Break Your Python Code?

por que a rebimpedar super () pode quebrar o código

na função python 3.x, a função super () pode ser chamada sem argumentos para acessar os métodos da superclass. Esse comportamento é ativado por um truque de mágica em tempo de compilação que estabelece uma conexão entre Super () e a classe de chamada. No entanto, se o super nome for recuperado a uma variável diferente (super_ no exemplo), essa conexão será quebrada.

A razão para isso é o D.R.Y. (Não se repita) Princípio. Nomear explicitamente a classe de chamadas em chamadas para a superclasse viola esse princípio e aumenta o risco de questões de reincidência. Além disso, o uso dos decoradores de classe que altera o nome da classe também interrompe a referência ao objeto de classe original. A célula faz referência ao objeto de classe original, garantindo que o super () sempre possa acessar a superclasse correta, mesmo que o super nome seja rebote. Ao simplificar a sintaxe da chamada e evitar armadilhas de recursão infinita, a implementação atualizada ajuda a evitar erros. Isso ocorre porque a célula é criada quando a classe super ou

é usada no método.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3