Revelando a natureza das funções, métodos não vinculados e métodos vinculados
O conceito de classes e métodos é fundamental para paradigmas de programação orientada a objetos . Compreender as nuances e relacionamentos entre funções, métodos não vinculados e métodos vinculados é crucial para dominar as complexidades do sistema de resolução de métodos do Python.
Definindo as entidades
Transformações e Acessibilidade
Principais diferenças
Equivalência e uso
Em ambos Python 2 e Python 3, as seguintes expressões são funcionalmente equivalentes:
f1(C())
C.f1(C())
C().f1()
A vinculação de uma função a uma instância cria uma versão modificada onde o primeiro parâmetro é inerentemente definido para a instância fornecida. Essencialmente, este método vinculado se comporta de forma idêntica às seguintes formas alternativas:
lambda *args, **kwargs: f1(C(), *args, **kwargs)
functools.partial(f1, C())
From Unbound to Bound
Uma instância de uma classe Python 2 não tem nenhum atributo direto correspondente a métodos não vinculados, que são em vez disso, recuperável por meio do atributo __dict__ da própria classe. No entanto, acessar um método não vinculado em uma instância resulta em sua conversão automática em um método vinculado.
Conclusão
Compreendendo as distinções entre funções, métodos não vinculados e métodos vinculados capacita você a utilizar efetivamente o mecanismo de resolução de métodos do Python. Compreender os mecanismos de ligação e transformação permite que você navegue pelas complexidades da codificação orientada a objetos com facilidade.
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