Como separar o código em vários arquivos/classes?

1,623 views
Skip to first unread message

Daniel

unread,
Jan 6, 2013, 1:41:12 PM1/6/13
to python...@googlegroups.com
Amigos,

Estou com um código relativamente grande, com várias classe no mesmo arquivo, gostaria de separar em arquivos por classes.

Por exemplo, quero ter arquivos do tipo "class1.py", "class2.py", "class3.py" e uma classe "main.py" que manipula os atributos e métodos das classes dos outros arquivos?

Imagino que tenho que fazer algo do tipo: "import class1.py" no arquivo main.py. Mas não é apenas isto, o que eu devo fazer? E após fazer isso devo me preocupar com algum conceito de herança, polimorfismo, abstração (encapsulamento), construtores ou alguma caracteristica que deve ser tratado de forma diferente?



Bruno Rocha

unread,
Jan 6, 2013, 2:03:56 PM1/6/13
to python...@googlegroups.com


Humm, diante de tantas perguntas que talvez seja impossivel responder em um e-mail eu responderia primeiramente:

www.cursodepython.com.br
www.pycursos.com
http://turing.com.br/wiki/index.php?title=Oficinas_Turing

Ou pega um bom livro de Python


Mas resumindo...


projeto/
... __init__.py  # dunder init, inicializa o diretorio como projeto
... main.py  # ou o nome que voce quiser será a porta de entrada de seu programa
.../modulos/
.../modulos/class1.py  # seu arquivo com a classe
.../modulos/class2.py  # seu arquivo com a outra classe

No main.py

from modulos.class1 import Class1
from modulos.class2 import Class2

código....


Mas antes, leia sobre Python, faça um curso! (o www.cursodepython.com.br é muito bom! :) )
Leia a PEP8
Não use numeros para nomear seus pacotes, modulos e classes!


Bruno. 

Bruno Rocha

unread,
Jan 6, 2013, 2:05:22 PM1/6/13
to python...@googlegroups.com
Correção

2013/1/6 Bruno Rocha <rocha...@gmail.com>
projeto/
... __init__.py  # dunder init, inicializa o diretorio como projeto
... main.py  # ou o nome que voce quiser será a porta de entrada de seu programa
.../modulos/
.../modulos/__init__.py  # aqui também precisa de um __init__
Reply all
Reply to author
Forward
0 new messages