3

一般的なプログラム構造ほど、特定のコーディングの質問ではありません。

私は独学の趣味のプログラマーの一人であり、ここでの最善のルートが何であるかわかりません。4つの変数(name、objID、a、b)を持つオブジェクトを作成したいと思います。例えば:

class myObj:
    def __init__(self, objName, objID):
        self.name = objName
        self.objID = objID
        self.a = 0
        self.b = 0

私の質問/問題は、objIDの値に基づいて、aとbの初期値を.txtファイルから取得したいということです。私は実際には2つ以上の変数が必要であり、数十の異なるタイプでこれらのオブジェクトを数百個作成します。

オブジェクトが作成されるたびにファイルが再び開かれると信じているので、このクラスからファイルを読み取りたいとは思いません。また、ファイルをリスト/配列/辞書にプルしてに渡すのは好きではありません。 myObjクラスは、その上のオブジェクトからのみ呼び出され、数十のインスタンスがあるためです。

明確にするために-私は100個の'topObj'オブジェクトを作成する予定です。それぞれに5〜10個の'myObj'オブジェクトがあり、各'myObj'には開始値(後で変更されます)があり、テキストファイルから取得されます。 500〜1000回読み取らずに、テキストファイルからデータを読み取るタイミングと場所。

うまくいけば、これは理にかなっているようです。

ありがとう、
db_

4

1 に答える 1

2

このクラスのファイルを読みたくないと思いますが、

おそらく、クラスが1つのエントリを表すためではなく、前述のように、各エントリでファイル全体を検索する必要があります。

myObjクラスはその上のオブジェクトからのみ呼び出され、数十のインスタンスがあるため、リスト/配列/辞書にプルしてクラスに渡すのはあまり好きではありません。

気に入らない場合は、インスタンスに保存する必要はありません。

ファイル全体を辞書に読み込んで、必要な場所に渡すだけです。毎回辞書のクローンを作成しているわけではありません。

次に、topObjは、すべてのmyObjコンストラクターにその辞書を与えることができます。とにかくそれは常に同じ辞書です、私はそれについておそらく悪いことを理解していません、まったく反対です:それは明示的であり、それでそれはPythonの方法です。

おそらく、エントリをすばやく見つけるための何らかの方法が必要であり、それがその方法です。

テキストファイルから取得

topObjsに関係なく、たった1つのテキストファイルから?次に、テキストファイルの内容を辞書に読み込んで渡します(必要に応じて、ロード関数に入れて整理することができます)。

于 2012-07-18T21:53:32.023 に答える