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
統計
Python
math
Linux
Ubuntu 20.04 LTS
Shell
English
git
方法論
Ubuntu 22.04 LTS
統計検定
競技プログラミング
フーリエ解析
前処理
SQL
coding
コミュニケーション
Network
ssh
将棋
Data visualization
Docker
Econometrics
VSCode
statistical inference
GitHub Pages
apt
development
システム管理
Coffee
cloud
数値計算
素数
Book
Font
Metrics
Poetry
Ubuntu 24.04 LTS
architecture
aws
shell
systemctl
テンプレート
データ構造
ポワソン分布
会計分析
文字コード
環境構築
論文
App
Bayesian
Dynamic Programming
Keyboard
Processing
R
Steam
filesystem
quarto
regex
(注意:GitHub Accountが必要となります)