回答編集履歴

1

低評価が付いたみたいなので多少説明を補足・修正

2019/06/04 15:34

投稿

hayataka2049
hayataka2049

スコア30933

test CHANGED
@@ -1,4 +1,10 @@
1
1
  ぱっと見た限り、特にクラスである必要性がないのが気になります。
2
+
3
+
4
+
5
+ クラスを作る主なモチベーションは、やはりインスタンス化してオブジェクトとして便利に使うことだと考えます。クラスのままクラスメソッドだけ呼ぶ、という使い方であれば、クラスを使わない方がすっきりします。
6
+
7
+ (ほかに継承もあるかもしれないけど、今回はそこまで想定していない気がするし、仮に継承をするとしても結論は変わらないと思います。)
2
8
 
3
9
 
4
10
 
@@ -68,11 +74,19 @@
68
74
 
69
75
 
70
76
 
71
- 要は、グローバルな関数にするということです。[Pythonの禅](https://www.python.org/dev/peps/pep-0020/)の`Simple is better than complex.`, `Flat is better than nested.`という考え方を踏まえると、この方が良いす。
77
+ 要は、グローバルな関数にするということです。[Pythonの禅](https://www.python.org/dev/peps/pep-0020/)の`Simple is better than complex.`, `Flat is better than nested.`という考え方を踏まえると、この方が良いかと思います。
72
78
 
73
79
 
74
80
 
81
+ ただ、元のコードでクラスを使っていたのは、名前空間の機能を使いたい、同じ機能のものを一つにまとめたい、というモチベーションがあったのかもしれません。その場合、Pythonはモジュールという形でそういうことのできる機能を提供していますから、こちらを使えば良いのです。
82
+
83
+
84
+
85
+ 単純に.pyのファイルを作ればモジュールになるので、使うのは簡単です。今回はクラスを別のファイルの中に書いているようなので、元の構造をほとんど変えないまま使うことができます。
86
+
87
+
88
+
75
- 実際は別スクリプトに書いているようですが、この場合はPythonスクリプトそのものがモジュールとして一つの名前空間にります。なので、余計な混乱も防げると思います。なお、モジュール名(ファイル名)は小文字のスネークケース(変数名、関数名と同等の命名規則)が推奨されます([参考](https://pep8-ja.readthedocs.io/ja/latest/#id30))。
89
+ なお、モジュール名(`***.py`の`***`の部分)は小文字のスネークケース(変数名、関数名と同等の命名規則)が推奨されます([参考](https://pep8-ja.readthedocs.io/ja/latest/#id30))。
76
90
 
77
91
 
78
92