Construindo Interfaces (POO)

187 views
Skip to first unread message

jeferson perito

unread,
Jan 19, 2012, 8:22:33 PM1/19/12
to python-brasil
Olá pessoal, meu conhecimento de python é médio e estou com
dificuldade de achar informação de como escrever uma interface em
python para uma aplicação que estou fazendo...

No PHP seria assim:

interface Loggable {
public function log();
}

como seria em Python?

Valeu!

Felipe Duarte

unread,
Jan 19, 2012, 9:52:26 PM1/19/12
to python...@googlegroups.com
Python não tem este recurso interface... Mais suporta herança múltipla.


--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar

<*> Para visitar o site do grupo na web, acesse:
   http://groups.google.com/group/python-brasil

<*> Para sair deste grupo, envie um e-mail para:
   python-brasi...@googlegroups.com



--
=====================================
Felipe Duarte Madeira de Azeredo
Sistemas de Informação - IFF CAMPOS - CAMPUS CENTRO
6º Período

Dirley

unread,
Jan 20, 2012, 5:22:26 AM1/20/12
to python...@googlegroups.com
Jefferson,

Como eu Felipe disse, Python não possui interfaces. Mas possibilita sua implementação: o módulo zope.interface[1] é um exemplo disso. Na página do pypi tem um link para a documentação, que contém alguns exemplos.


- D

jeferson perito

unread,
Jan 20, 2012, 5:27:33 AM1/20/12
to python...@googlegroups.com
Muito obrigado aos dois!

Ja estava ficando um pouco chateado por não possuir interfaces, gosto delas para deixar o código mais legível e fazer injeções de dependências. Valeu!
Atenciosamente,

Jeferson Viana Perito

www.jefersonperito.com

Mário Neto

unread,
Jan 20, 2012, 7:22:49 AM1/20/12
to python...@googlegroups.com
Acho que vai perder os melhores recursos e simplicidade da linguagem se vier com pensamentos muito para Java, C# (Essas que complicam até pra fzr um helloworld) hehe ... mas é bom programar em python com pensamento pythonico! =)
Att. Mário Araújo Chaves Neto
Programmer, Designer and U.I. Engineer

MBA in Design Digital - 2008 - FIC
Analysis and Systems Development - 2011 - Estácio
Design and Implementation of Internet Environments - 2003 - FIC

Leonardo Santagada

unread,
Jan 20, 2012, 11:25:10 AM1/20/12
to python...@googlegroups.com
2012/1/20 jeferson perito <jefp...@gmail.com>:

> Ja estava ficando um pouco chateado por não possuir interfaces, gosto delas
> para deixar o código mais legível e fazer injeções de dependências. Valeu!

Para injeção de depencia tu não precisa de interfaces. E nem de um
design pattern no python, proque é meio que parte da linguagem.


--

Leonardo Santagada

jeferson perito

unread,
Jan 20, 2012, 11:36:33 AM1/20/12
to python...@googlegroups.com
Bem... o que eu mais faço é pensar e estudar simplicidade e legibilidade de código, sou adepto de metodologias como KISS, DRY e YAGNI, mas acho que a interface ajuda mais do que a atrapalha nesses quesitos, ao você ler que a classe Enemy implementa uma interface Runnable, você sabe que aquela classe está implementando operações de Thread, tornando mais semântico, IMHO. :)

jeferson perito

unread,
Jan 20, 2012, 11:38:57 AM1/20/12
to python...@googlegroups.com
Como assim? Até onde eu sei, existe 3 jeitos de criar injeções de dependência (sem utilizar esses frameworks malucos):
constructor, setter e interface, como o python abstrai isso?

--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar

<*> Para visitar o site do grupo na web, acesse:
   http://groups.google.com/group/python-brasil

<*> Para sair deste grupo, envie um e-mail para:
   python-brasi...@googlegroups.com

Fábio Barrionuevo

unread,
Jan 20, 2012, 11:50:50 AM1/20/12
to python...@googlegroups.com
Serial alguma coisa assim: http://www.aleax.it/yt_pydi.pdf  ??

--
Fabio C. Barrionuevo da Luz
UFT - Universidade Federal do Tocantins
Palmas - Tocantins - Brasil - America do Sul - Terra

jeferson perito

unread,
Jan 20, 2012, 12:00:31 PM1/20/12
to python...@googlegroups.com
Opa! Obrigado mestre pelo material, vai ser bastante útil! ja joguei no dropbox! :)

--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com

Leonardo Santagada

unread,
Jan 20, 2012, 1:16:40 PM1/20/12
to python...@googlegroups.com
2012/1/20 Fábio Barrionuevo <bna...@gmail.com>:

> Serial alguma coisa assim: http://www.aleax.it/yt_pydi.pdf  ??

FENOMENAL, achei que eu ia ter que escrever um email gigante
explicando. não é alguma coisa assim, é exatamente isso. Como em
python tu pode passar classes numa boa dum lado pro outro e metodos e
funções DI é trivial, sobrando só o pattern de sempre receber os
objetos que tu vai operar na criação das classes.

--

Leonardo Santagada

Fábio Nascimento

unread,
Jan 20, 2012, 3:36:08 PM1/20/12
to python...@googlegroups.com
Olá,

Existe um vídeo do Luciano Ramalho [1] do TDC quee é fenomenal !!!
Ele te mostra como aprender OO em python sem sotaque  !!! 
Espero que te ajude.


Att.:
Fábio Nascimento | 

"O estudo da ciência da computação não consegue transformar qualquer um em um excelente programador, da mesma forma que o estudo de tintas e pinceis não transforma qualquer um em um excelente pintor." – Eric S. Raymond




Reply all
Reply to author
Forward
0 new messages