39

スタック オーバーフローの初めてのユーザーで、ここにいることに興奮しています。

INTRO: 私は最近、Python プログラミングの世界への魔法のような冒険を始めました - 私はそれが大好きです。これで C からの気まずい移行はすべて順調に進みましたが、HEADER ファイル (.h) と同義のものを作成するのに苦労しています。

問題: 中規模の辞書とリスト (約 1,000 要素)、長い列挙型、および '#defines' (実際にはそうではありません) がありますが、それらすべてを整理するクリーンな方法が見つかりません。Cでは、それらすべてをヘッダーファイルに入れ、それについて二度と考えませんでしたが、Pythonではそれは不可能か、そう思います。

現在の汚れた解決策: MODULE または FUNCTION (複数の関数で必要な場合はモジュール) の上部にあるすべての CONSTANT 変数を初期化しています。

結論: 誰かが定数変数をきれいに整理する方法を思いついたなら、私は永遠に感謝します。

どうもありがとうございます!

4

5 に答える 5

25

定数を独自のモジュールに入れます。

# constants.py

RED = 1
BLUE = 2
GREEN = 3

次に、そのモジュールをインポートして定数を使用します。

import constants

print "RED is", constants.RED

ここでは整数を示しましたが、リストと dict はまったく同じように機能します。

于 2012-06-20T01:23:39.323 に答える
12

通常、私はこれを行います:

ファイル:定数.py

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

ファイル: your_script.py

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

...

これで、定数が 1 つのファイルにまとめられ、うまくインポートして使用できるようになりました。

于 2012-06-20T01:24:08.660 に答える
4

別のファイルconstants.pyを作成し、グローバルに関連するすべての定数をそこに入れます。次にimport constants、それらを として参照するか、constants.SPAMまたは (疑わしい)from constants import *を実行して、単にSPAMまたはとして参照することができEGGSます。

ここでは、Python が定数定数をサポートしていないことに注意してください。慣習は、それらに名前を付けて、それらALL_CAPSを変異させないことを約束することです。

于 2012-06-20T01:24:36.760 に答える