Meninos e meninas, Danilo Medeiros está de volta:
O Zen e a arte cavalheiresca da programação orientada a objeto.
Putzgrilo! Muito, muito bom! Leitura altamente instrutiva para os iniciantes nessa arte insana e apaixonante. Se você está começando a programar agora, não deixe de acompanhar Danilo e seus gnomos.
E terrivelmente divertida e nostálgica para nós que já vivemos isso há algum tempo.
Por falar em OO, alguém me perguntou esses dias sobre como criar classes abstratas no Python. Minha resposta foi: “para quê?”
Pois é, o Python não tem classes abstratas, assim como uma porção de outras coisas consideradas essenciais por quem programa em outras linguagens, como tipos estáticos ou variáveis realmente privadas. Eu também fiquei muito assustado quando descobri isso, é normal. Mas, com o tempo, fui percebendo que isso é uma vantagem, e não uma desvantagem do Python. É uma linguagem que nunca te diz que você não pode fazer alguma coisa.
Assim, eu não modifico externamente minhas variáveis privadas, não porque eu não possa fazê-lo, mas porque eu não acho que seja bom. E se, para alguma solução específica, eu precisar fazê-lo, o Python não vai me dizer que não posso. Assim, para criar uma classe abstrata, eu faria:
class Automovel:
def acelerar():
self.velocidadeatual+=self.aceleracao
print "Acelerando. A velocidade atual agora é de %i km/h" % self.velocidadeatual
Está certo, se você vem de Java, por exemplo, isso pode parecer muito inseguro. Isso é coisa da sua cabeça, acredite. Mas, se você não quiser acreditar, então pode tentar um truque como o dessa página (Procure por “abstract”) ou isso aqui.
Deixe um comentário