2016-12-22 6 views
-1

私は大きなプログラムの設計に概念的に苦労してきました。一般的なレイアウトは、次のようなものです:Pythonモジュールのベストプラクティス

def mainFunc(parm_1, parm_2, ..., parm_n): 
    # do step 1 
    # do step 2 
    # ... 
    # do step m 

私の質問は次のとおりです。それぞれのステップを独自の機能にする必要がありますか?私はmainFuncの外で関数として何らかのステップを呼びたくはない。だから、各ステップをスニペットにする方が良いでしょうか?関数を呼び出すことと同じことをするスニペットを実行することの実際的な違いは何ですか? (もちろん、不要な変数はスニペットの最後に削除されていると仮定してください)

私は本当にどのアプローチが長期的には良いかわかりません。どんな提案も大歓迎です。

+1

外部関数を呼び出すときと、コードをペーストするときとではほとんど違いはありません。忘れてしまいます。コードを関数/メソッドにグループ化する理由は、コードを再利用できるようにすることです(関数を抽出するために必要なステップを数回繰り返す必要がある場合)。また、ブロックを多数の小さなブロックに分割する必要があります。 'mainFunc'は十分に大きいでしょう –

+1

これはかなり広い質問です。ほとんどの場合、それはあなたのニーズに依存します... PythonはOOP言語ですので、クラスもあります。多くの場合、クラス 'class MyApp()'とメソッドと 'run'メソッドがあります。クラス。しかし、私は 'MyApp()。run()'として使っています。しかし、それは多くの概念の一つに過ぎません。 – quapka

+1

あなたはまた、他の人(3ヶ月の時間にコードで)あなたのコードを読んで維持する必要があります。このようにして、それぞれの部品が何をしているかを、予測可能な形式で入力を行い、容易に識別可能なことを行い、設定された形式で出力するドキュメンテーションと関数と通信するほうがはるかに簡単です。 「すべてを行う」という1つの巨大な機能がある場合、これは失われます。 – roganjosh

答えて

1

各ステップが独自の意味を持つ場合は、関数を作成する方が良いかもしれません。このようにして、各機能の機能を文書化することができ、バグを分離することも容易になります。要約すると、関数を使うとコードを簡単に維持できると思います。

関連する問題