定数についての命名規則

Python Programming Styling Part 1

公開日: 2021-05-13
更新日: 2024-03-13

  Table of Contents

Constantは大文字で

Rule

  • Constants(定数)は大文字とアンダースコアで表記されるべき

このNaiming conventionはPython runtimeが要請するものではなく, semanticな意味での要請となります. 他の開発者がコードをレビューするとき, この規則があると変数の値がどのように変化するのか調べなくて良い(なぜなら定数だから) と判断することができレビュー時間の節約に繋がります.

例として以下のようなmy_convert_ftoc.pyを考えます

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def convert_ftoc(f_temp):
    # convert Fahrenheit to Celsius
    f_boil_temp = 212.0
    f_freeze_temp = 32.0
    c_boil_temp = 100.0
    c_freeze_temp = 0.0
    f_range = f_boil_temp - f_freeze_temp
    c_range = c_boil_temp - c_freeze_temp
    f_c_ratio = c_range / f_range
    c_tmp = (f_temp + f_freeze_temp) * f_c_ratio + c_freeze_temp
    return c_temp


if __name__ == '__main__':
    for f_temp in [-40.0, 0.0, 32.0, 100.0, 212.0]:
        c_temp = convert_ftoc(f_temp)
        print('%f F => % C' % (f_temp, c_temp))

このとき, 2つの改善が考えられます:

  • Constants(定数)は大文字とアンダースコアの表記に変更する
  • 定数値をモジュールトップに移動する

前者は, PEP8のルールから要請されるアクションとなります. 後者は, 定数をモジュールトップに移動させることで 定数の読み込みはモジュール読み込み時のみに限定され, convert_ftoc()関数を読み出すたびに定数を読み込むという 無駄を削減することができるという意図があります.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
F_BOIL_TEMP = 212.0
F_FREEZE_TEMP = 32.0
C_BOIL_TEMP = 100.0
C_FREEZE_TEMP = 0.0
F_RANGE = F_BOIL_TEMP - F_FREEZE_TEMP
C_RANGE = C_BOIL_TEMP - C_FREEZE_TEMP
F_C_RATIO = C_RANGE / F_RANGE

def convert_ftoc(f_temp):
    # convert Fahrenheit to Celsius
    c_tmp = (f_temp + F_FREEZE_TEMP) * F_C_RATIO + C_FREEZE_TEMP
    return c_temp


if __name__ == "__main__":
    for f_temp in [-40.0, 0.0, 32.0, 100.0, 212.0]:
        c_temp = convert_ftoc(f_temp)
        print("%f F => % C" % (f_temp, c_temp))

VSCodeで選択範囲の大文字/小文字の切り替え

VS CodeではDefaultではキーはアサインされてはいないですが, 大文字/小文字の切り替えのコマンドがsystemに入っています

  • Transform to Uppercase: editor.action.transformToUppercase
  • Transform to Lowercase: editor.action.transformToLowercase

VSCode settings.jsonの設定例

1
2
3
4
5
6
7
8
    {
        "key": "ctrl+u",
        "command": "editor.action.transformToUppercase"
    },
    {
        "key": "ctrl+shift+u",
        "command": "editor.action.transformToLowercase"
    },

References



Share Buttons
Share on:

Feature Tags
Leave a Comment
(注意:GitHub Accountが必要となります)