Dúvida: Classes e Módulos [RESOLVIDO]

1. Dúvida: Classes e Módulos [RESOLVIDO]

Marcos Ramos
marcos.ramos

(usa Ubuntu)

Enviado em 26/06/2009 - 00:07h

minha dúvida é a seguinte:

quando programando em OO, por convenção eu devo criar uma classe por módulo, como no Java, ou criar classes nos módulos de acordo com o contexto? Aliás, como fica a organização dos pacotes/módulos?

Digo isso por que estou implementando um pequeno sistema comercial(por sinal em MVC), onde coloquei em um módulo(Produto) as classes Produto, Unidade e Categoria, aí bateu a dúvida.

Pesquisei na internet por isso, mas só achei convenções da linguagem, que já devo ter lido em umas 5 apostilas...


  


2. MELHOR RESPOSTA

Anderson de Oliveira Madeira
enki

(usa Zenwalk)

Enviado em 21/10/2010 - 12:21h

Os módulos em python são bastante diferentes dos pacotes em Java, na verdade eles só se parecem na sintaxe. Quando você cria um arquivo __init__.py na pasta para criar um módulo, na verdade o principal motivo disso é que você deseja controlar o acesso aos arquivos de dentro do pacote, por exemplo, considerem a organização:

teste_py/meu_modulo/__init__.py:

from mod1 import Mod1 as Classe1

teste_py/meu_modulo/mod1.py:

class Mod1(object):
def __init__(self):
print 'Mod1()'

teste_py/meu_modulo/mod2.py:

class Mod2(object):
def __init__(self):
print 'Mod2()'

teste_py/teste.py

import meu_modulo

meu_modulo.Classe1()
meu_modulo.Classe2()
meu_modulo.Mod2()

Dará erro nas duas últimas linhas



3. Re: Dúvida: Classes e Módulos [RESOLVIDO]

Joao
stack_of

(usa Slackware)

Enviado em 02/08/2009 - 10:57h

Sugiro voce dar uma olhada nos módulos próprios do Python, vai verificar que existem módulos com mais de uma classe, e outros apenas uma e tem também aqueles sem classe alguma, programados no modo processual.

Acho que essa limitação não existe no Python, mas seria melhor esperar opinião de programador experiente.


4. Re: Dúvida: Classes e Módulos [RESOLVIDO]

Danillo Souza
danltmz

(usa Ubuntu)

Enviado em 02/05/2010 - 09:17h

Realmente essa limitação não existe em Python, acredito que você deve seguir seu próprio estilo e fazer da forma que for mais eficiente e facil de oorganizar para você.
É normal criar várias classes dentro de um módulo, apenas quando as classes são muito grandes eu coloco cada uma em um módulo e junto tudo num pacote, talvez isso também te ajude.


5. Modulos, Pacotes e Classes

Estevão Dominique Ribeiro Dias
estevaodrdias

(usa openSUSE)

Enviado em 21/09/2010 - 10:47h

Para criar pacotes você coloca os arquivos .py em pastas como faria no Java, a única diferença é que você precisa que em cada pasta, a ser identificada como pacote, tenha um arquivo especial chamado __init__.py, que pode até estar em branco, mas tem que estar lá. Exemplo:

/myapp
main.py
model
__init__.py
produtos.py
clientes.py
view
__init__.py
dialogo.glade
dialogo.py

Quanto a quantas classes por modulo, depende da sua preferência, pelo que consegui perceber pesquisando alguns códigos. O melhor que achei, foi o estilo usado pelo programador do Emesene. Você pode baixar códigos fonte e estudá-los, procure no Google por 'emesene ppa'. Outra coisa, digamos que o modulo Numeros.py tenha duas classes: Reais e Imaginarios. Você usaria a classe Reais assim:

import Numeros

num = Numeros.Reais

Ou assim:

from Numeros import Reais

num = Reais

O modula funciona como um 'pacote', isso para gente que vem do Java.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts