2016-09-14 14 views
-1

私が働いているアプリケーションはPython 2.7です。これらはいくつかのクラスがあり、相互にやりとりしてからすべてをメインプログラムに戻して出力します。他のクラスのPythonオブジェクトまたは別のクラスですか?

ように、コードの簡単な例は次のようになります。

class foo_network(): 
    """Handles all network functionality""" 
    def net_connect(self, network): 
     """Connects to the network destination""" 
     pass 

class foo_fileparsing(): 
    """Handles all sanitation, formatting, and parsing on received file""" 
    def file_check(self, file): 
     """checks file for potential problems""" 
     pass 

現在、私は彼らと彼らの間で、必要に応じてすべてのクラスをインスタンス化して、前後にデータを渡して処理するメインファイル/機能を持っていますメソッド。しかし、これは少し不器用なようです。

  1. は何これを処理するための最も「Python的」な方法のようになります。このように

    私は二つのことを思ったんだけど?

  2. これをパフォーマンスとメモリ使用のために処理する最良の方法は何ですか?

私はちょうどそれが呼び出しされる唯一のクラスである場合foo_networkクラス内foo_fileparsingオブジェクトを作成し、言う、例から(別の内部で一つのクラスのオブジェクトをインスタンス化する必要がある場合、私は思ったんだけどそれは、むしろそのようにmain関数にすべてを返却し、オブジェクト間にそれを渡す私の現在のアプローチよりも。

残念ながら、私はこの種の状況に対処するためと思われるPEPまたは他のリソースを見つけることができません。

+0

あなたが求めていることは私にはっきりと分かりません。 ** working code **が改善されていると思われる場合は、[codereview.se]を参照してください。そうでない場合は、*「最も肥沃な」*のようなものはSOの意見に基づいている傾向があり、パフォーマンスは他の多くのパラメータによって変化します。 – jonrsharpe

答えて

0

あなたはモジュールを使うことができます。 1つのモジュール内のクラス。 を使用してインポートを使用して、そのクラスから特定のメソッドのみをインポートすることができます。 これは、クラス名と同じ名前のディレクトリを作成し、init .pyファイルをそのディレクトリに置くことです。このディレクトリは、pythonにそのディレクトリをモジュールとして認識させるものです。 次にex。 foo_networkフォルダには、foo_network.pyという名前のファイルと、の初期 .pyというファイルが含まれています。そしてfoo_network.pyコードIS-

class foo_network(): 
    """Handles all network functionality""" 
    def net_connect(self, network): 
     """Connects to the network destination""" 
     pass 

、あなたは単にそれだけでその特定のメソッドをインポートします

import net_connect from foo_network 

を使用することができ、他のファイルにインチこのようにしてコードが乱雑にならず、必要なものだけをインポートすることができます。 あなたも一度にすべてのメソッドをインポートする

import * from foo_network 

を行うことができます。

希望に役立ちます。

関連する問題