/ / Python - najlepší / najčistejší spôsob definovania konštantných zoznamov alebo dictionarys - python, c, hlavička, konštanty, organizované

Python - najlepší / najčistejší spôsob definovania konštantných zoznamov alebo dictionarys - python, c, hlavička, konštanty, organizované

Prvýkrát používateľ na pretečení zásobníka a som nadšený, že tu budem.

ÚVOD: Nedávno som začal magické dobrodružstvo do sveta programovania Pythonu - milujem ho. Teraz všetko prebehlo hladko v mojom nevhodnom prechode z C, ale mám problémy vytvárať niečo, čo by bolo synonymom pre súbor HEADER (.h).

PROBLÉM: Mám stredne veľké slovníky a zoznamy (asi 1000 prvkov), zdĺhavé enumy a "#defines" (nie v skutočnosti), ale nemôžem nájsť CLEAN spôsob, ako ich všetky usporiadať. hlavičkový súbor a nikdy o tom nikdy nezmyslite, ale v Pythone to "nie je možné, alebo tak myslím.

RIEŠENIE CURRENT DIRTY: Inicializujem všetky konštantné premenné v hornej časti modulu MODULE alebo FUNCTION (modul, ak ho potrebujú viaceré funkcie).

ZÁVER: Bol by som naveky vďačný, keby niekto prišiel so spôsobom, ako CLEANY usporiadať konštantné premenné.

ĎAKUJEM TI VEĽMI PEKNE!

odpovede:

20 pre odpoveď č. 1

Vložte svoje konštanty do vlastného modulu:

# constants.py

RED = 1
BLUE = 2
GREEN = 3

Potom importujte tento modul a použite konštanty:

import constants

print "RED is", constants.RED

Konštanty môžu byť akékoľvek hodnoty, ktoré sa vám páčia, som uviedol celé čísla tu, ale zoznamy a dikty by fungovali rovnako.


9 pre odpoveď č. 2

Zvyčajne to robím:

súbor: constants.py

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

súbor: your_script.py

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

...

Teraz sú vaše konštanty v jednom súbore a môžete ich pekne importovať a používať.


3 pre odpoveď № 3

Vytvorte samostatný súbor constants.py, a tam umiestniť všetky globálne relevantné konštanty. Potom môžete import constants označiť ich ako constants.SPAM alebo to (pochybné) from constants import * ako jednoducho ich odkazovať SPAM alebo EGGS.

Aj keď sme tu, všimnite si, že Python nepodporuje konštantný konštanty. Dohovorom je len ich pomenovať ALL_CAPS a sľúbiť, že ich nebude mutovať.