2016-07-08 4 views
4

csvファイルからデータを収集するシングルトンクラスを作成したいのですが、そのためにはDictReader型のデータメンバーが必要です。私はそれが唯一そうのように初期化することができるように私は、クラス定義でこのメンバーを初期化する方法を確認していない:Pythonクラス定義内のリーダーオブジェクトを初期化する方法

with open('sourceFile.csv') as source: 
    reader = csv.DictReader(source) 

Pythonはあなたが初期化せずに変数を宣言することはできませんので、私はどのように私を知っている必要がありますSingletonクラスのリーダーオブジェクトを初期化できます。

+1

あなたは[ '__init__'方法](https://docs.python.org/2/reference/datamodel.html#object.__init__について知っていますか)? –

+0

ああええ。それはおそらく動作します。もしそうなら、私はその質問を終わらせます。 –

+0

うわー。私はこの質問が単一の投票を得るつもりはないと思った。今、私は100歳以上です。ありがとう! –

答えて

1

あなたのような何かを探してい:

class MySingleton(object): 
    def __init__(self, source): 
     self.my_reader = DictReader(source) 


if __name__ == '__main__': 
    singleton = MySingleton(sourcefile) 
    for row in singleton.my_reader: 
     # do stuff 
+0

恐ろしい!それは全く役に立ちました。 –

関連する問題