/ / Python - Melhor / Melhor maneira de definir listas ou dicionários constantes - python, c, cabeçalho, constantes, organizados

Python - Melhor / Melhor maneira de definir listas ou dicionários constantes - python, c, cabeçalho, constantes, organizados

Usuário de primeira vez em estouro de pilha e estou animado para estar aqui.

INTRO: Eu comecei recentemente a aventura mágica no mundo da programação em Python - eu adoro isso. Agora tudo correu bem na minha transição desajeitada de C, mas estou tendo problemas para criar algo que seria sinônimo de um arquivo HEADER (.h).

PROBLEMA: Tenho dicionários médias e listas (cerca de 1.000 elementos), enums longas, e "# define" (bem, não realmente), mas eu posso "t encontrar uma maneira limpa para organizá-los todos. Em C, eu jogá-los todos em um arquivo de cabeçalho e nunca mais pense sobre isso, no entanto, em Python que "não é possível ou assim eu acho.

SOLUÇÃO SUJA DE CORRENTE: Eu estou inicializando todas as variáveis ​​CONSTANTES no topo do MÓDULO ou FUNÇÃO (módulo se múltiplas funções precisarem).

CONCLUSÃO: Eu ficaria eternamente grato se alguém tivesse inventado uma maneira de organizar LIMPAMENTE as variáveis ​​constantes.

MUITO OBRIGADO!

Respostas:

20 para resposta № 1

Coloque suas constantes em seu próprio módulo:

# constants.py

RED = 1
BLUE = 2
GREEN = 3

Em seguida, importe esse módulo e use as constantes:

import constants

print "RED is", constants.RED

As constantes podem ser qualquer valor que você goste, mostrei números inteiros aqui, mas listas e dicionários funcionariam da mesma forma.


9 para resposta № 2

Normalmente eu faço isso:

Arquivo: constants.py

CONSTANT1 = "asd"
CONSTANT_FOO = 123
CONSTANT_BAR = [1, 2, 5]

Arquivo: your_script.py

from constants import CONSTANT1, CONSTANT_FOO
# or if you want *all* of them
# from constants import *

...

Agora suas constantes estão em um único arquivo e você pode importá-las e usá-las.


3 para resposta № 3

Faça um arquivo separado constants.py, e colocar todas as constantes relevantes globalmente lá. Então você pode import constants para se referir a eles como constants.SPAM ou faça o (questionável) from constants import * para se referir a eles simplesmente como SPAM ou EGGS.

Enquanto estamos "aqui, observe que o Python não suporta constante constantes. A convenção é apenas para nomeá-los em ALL_CAPS e prometo não mutacioná-los.