定数とパッケージについて
やりたいこと
定数を用意しておいて、他のスクリプトとも共有したいので、
モジュールかパッケージにしたい。
py
LANG_DISPLAY_NAMES = {
'js': 'JavaScript',
'ts': 'TypeScript',
'py': 'Python',
'rb': 'Ruby',
'cpp': 'C++',
}
方法1. モジュール constants.py に入れる
- 利点: ファイル増えすぎない
- 不便: dictionary 等でサイズが大きいと、差分が煩雑か
constants.py
LANG_DISPLAY_NAMES = {
...,
}
呼び方:
a.py
import constants
print(constants.LANG_DISPLAY_NAMES['py'])
こうでも良い
a.py
from constants import LANG_DISPLAY_NAMES
print(LANG_DISPLAY_NAMES['py'])
方法2. パッケージ constants に入れる
- 利点: 変更時の差分が分かりやすい
- 不便: ファイルが増えすぎる可能性あり
constants/LANG_DISPLAY_NAMES.py
LANG_DISPLAY_NAMES = {
...,
}
constants/__init__.py
from .LANG_DISPLAY_NAMES import LANG_DISPLAY_NAMES
呼び方:
a.py
import constants
print(constants.LANG_DISPLAY_NAMES['py'])