Olá, no código abaixo, self.__expressao_esquerda é um atributo, correto? Na continuação do comand, há o ".avalia()", que é um método. Eu não consigo enxergar o porquê de ser possível cascatear um atributo e um método. Como poderia fazer para ver de outro ângulo para resolver esta dúvida?
def avalia(self):
return (self.__expressao_esquerda.avalia()
+ self.__expressao_direita.avalia())