Trabalho com shell script, criando pacotes .deb.
Nesses pacotes, costumo usar arquivos de configuração, que contém
variáveis vistas por vários outros scripts, exemplo:
------ variaveis.sh -------
ADDSU00="Usuario adicionado com sucesso"
ADDER00="Ocorreu um erro ao adicionar o usuário."
RMSU00="Usuário removido com sucesso"
...
------ variaveis.sh -------
Para importar essas variáveis nos scripts, basta rodar:
source variaveis.sh, ou ainda
. variaveis.sh
E já posso utilizá-las como se as tivesse definido no próprio script.
Minha dúvida é sobre qual a melhor maneira de fazer isso em python.
Pensei em algumas maneiras:
1° Crio um arquivo, variaveis.py, com o seguinte conteúdo:
class msg:
ADDSU00="Usuario adicionado com sucesso"
ADDER00="Ocorreu um erro ao adicionar o usuário."
RMSU00="Usuário removido com sucesso"
E referencio isso em meu outro script fazendo:
import variaveis
print variaveis.msg.ADDSU00
2° Crio o mesmo arquivo, porém com o seguinte conteúdo (desta maneira,
com muitas variáveis, a chance de erros será grande).
def msg(texto):
vars = [ "ADDSU00", "ADDER00" ]
conteudo = [ "Usuario adicionado com sucesso", "Ocorreu um erro ao
adicionar usuário." ]
idx = vars.index(texto)
print conteudo[idx]
3° Esta provavelmente estou confundindo o conceito, mas vi algo sobre
dicionários, definidos da seguinte forma (vejo essa como uma melhoria da
função do ítem 2).
def msg(texto):
dic = { "ADDSU00":"Usuário adicionado com sucesso",
"ADDER00":"Ocorreu um erro ao adicionar usuário." }
dic.get(texto)
Então, vocês recomendam/aperfeiçoam alguma forma dessas, ou sugerem
outra coisa melhor?
_______________________________________________________
Yahoo! Mail - Sempre a melhor opção para você!
Experimente já e veja as novidades.
http://br.yahoo.com/mailbeta/tudonovo/
,-----------------------------------------------------------.
| Antes de enviar um e-mail para o grupo leia: |
| http://www.pythonbrasil.com.br/moin.cgi/AntesDePerguntar |
| E se você é usuário do BOL lembre-se de cadastrar o |
| e-mail do grupo na lista branca do seu sistema anti-spam. |
`-----------------------------------------------------------´
Links do Yahoo! Grupos
<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/python-brasil/
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@yahoogrupos.com.br
<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html
Isso aqui:
ADDER00="Ocorreu um erro ao adicionar o usuário."
me parece mais um caso pra se jogar uma excecao do que somente mostrar a
mensagem.
Das opcoes que voce mostrou a segunda eh a pior de todas. Primeiro porque
voce usa duas listas de uma forma que praticamente representa um dicionario,
de forma bem pior. Na primeira opcao voce nao precisa criar uma classe, e na
terceira opcao acho que voce esqueceu de um return.
Talvez seria melhor voce so colocar as mensagens num arquivo de templates
(um modulo qualquer ai), importar elas e ai mostrar elas. Lembrando que
aquela segunda mensagem me parece um caso de se usar uma Exception.
--
-- Guilherme H. Polo Goncalves
[As partes desta mensagem que não continham texto foram removidas]
Pq não "from variaveis import *"? é a forma que fica praticamente a
mesma semantica do bash, mas importação de modulo não é a mesma coisa
que chamar um arquivo.... de uma olhada na documentação do python pra
ver as diferenças.
--
Leonardo Santagada (http://www.lomohomes.com/retype)
Não se preocupe com o que os outros vão fazer. O melhor jeito de
prever o futuro é inventa-lo.
- Alan Kay