12.3 Para Sabe Mais - Tkinter

Tkinter é um framework que faz parte da biblioteca padrão do Python utilizado para criar interface gráfica. É um caso onde mix-ins trabalham bem já que se trata de um pequeno framework, mas também é suficientemente grande para que seja possível ver o problema. Veja um exemplo de parte de sua hierarquia de classe:

A imagem acima foi retirada do livro Python Fluente de Luciano Ramalho - mostrando parte do complicado modelo de classes utilizando herança múltipla do pacote Tkinter . A setas representam o MRO que deve iniciar na classe Text . A classe Text implementa um campo de texto editável e tem muitas funcionalidades próprias, além de herdar muitos métodos de outras classes.

Uma outra classe do pacote que não aparece neste diagrama é a Label , utilizada para mostrar um texto ou bitmap na tela. Você pode testar no Pycharm, aproveitando a ferramenta de autocomplete, chamando Tkinter.Label. e a IDE vai te mostrar 181 sugestões de atributos em uma única classe! Ou você pode utilizar a função help() para checar a origem de cada um deles.

from tkinter import \* help(Label)

Esse pacote tem mais de 20 anos e é um exemplo de como a herança múltipla era utilizada quando

os programadores não consideravam suas desvantagens. Apesar da maioria das classes se comportarem como mix-ins, o padrão de nomenclatura não era utilizado. Felizmente, o Tkinter é um framework estável.


⬅️ Capítulo Anterior | Próximo Capítulo ➡️