2017-03-26 11 views
0

読みやすさと移植性を向上させるためのPythonコードのモジュールを書く際に、単純な戻り値のためのメソッドや変数を記述する方が良いでしょうか?どうして? Pythonメソッドは、メモリ内のより多くの領域を利用するのか、変数を使用するのでしょうか?Pythonモジュール - メソッドと変数の比較

実際にはそれが変わらないくらい... module.item()module.item 注:モジュールを使用してを書き込まれるコードの読みやすさを考えてみましょう。モジュール自体の読みやすさではありません。例えば

#colors.py 

def red(): 
    return [255,0,0] 

def green(): 
    return [0,255,0] 

def blue(): 
    return [0,0,255] 

VS

#colors.py 

red = [255,0,0] 
green = [0,255,0] 
blue = [0,0,255] 
+1

なぜこれらの関数を書くのですか?私はリストの代わりにタプルを使う傾向があります。部分的には可変性の理由からです(または名前付きタプルなので、必要に応じて 'colors.red.blue'などで値にアクセスできます)が、そうでない場合は第2バージョンがはるかに意味があります。 – jonrsharpe

+0

そのような関数を書く価値があるかどうかは分かりません。したがって、疑問。ちょうど知識のために、他人が何を言おうとしているのか。 – jkessluk

+2

memory_profiler https://pypi.python.org/pypi/memory_profiler –

答えて

2

値は決して変更されない場合は、そこにあるようには決して、単に変数を使用する値を決定するために、任意のロジックである必要がありません。関数を呼び出すことによって、値を決定するために何らかの操作を実行する必要があることをモジュールを使用してユーザーに通知します。何もせずに値を返すだけであれば、誤解を招き、混乱することになります。

+0

十分に公正で、意味があります。 – jkessluk

+0

あなたはそれが許容できるとみなすためにこの回答に追加できると感じることはありますか? – Julien

+0

私はそれを答えとして使用する予定です。誰か他の人が一緒に来た場合に備えて少し時間を割いています。あなたの答えは非常に簡単で、それは多かれ少なかれ質問に答えます。 – jkessluk

0

この特定の例では、のいずれも使用しません。赤は常に[255,0,0]になるので、なぜそれを変更させるのですか?タプルを使用します。

また、Pythonの呼び出し関数は比較的遅いので、特にコードが複雑になると、モジュール用に使用しません。 [255,0,0]は赤色で、[200,0,0]は暗いです。モジュールがそのような単純な値を使用しない限り、いいえ、あなたのモジュールを使用している人がredまたはred()にすることができるようにしたい場合は、自分でそれを行うことができるはずです。

+0

コンセプトは色のデモンストレーション以上に進んでいます。はい、人々は赤=(255,0,0)を知るべきです。そして、はい、タプルは例よりもリストよりもうまくいくでしょう。しかし、オイラー・マスヘロニ定数のようなものがあれば誰にでも分かるはずです。私はそれを私のモジュールに保存し、プログラムの後半に返すことができるので、.57721を暗記する必要はありません。この例は単純なものの例です。どこかのコードで何が行われる必要があるのか​​の決定的な複製ではありません。 – jkessluk

+0

その場合、変数を使う方が良いと思います。私が言っていることは、余分な変数を定義すること、または単に定数を返すだけでは機能しない関数は、あなたのコードをどんな形でも改善するものではないということです。 –

関連する問題