2016-05-02 2 views
0

データを照会している断片(データベース)があり、S3のマニフェストファイルを作成する必要があります。そうのようなクラス・レベルでマニフェストオブジェクトを置くために悪い習慣のようになります。その後、他のオブジェクトをクラスの名前空間に配置するのは悪い習慣ですか?

class Shard(mu.PrettyStr): 
    # Tracks files on a class level for manifest creation. 
    manifest = aws.S3Manifest() 

そしてそうのようにそれを操作する:

それクラスを作る
Shard.manifest.add_record(
      s3_destination=s3.get_full_destination() 
     ) 

または

cu.Shard.manifest.create_manifest() 
+1

モジュールレベルに置くのはなぜですか?これはJavaではありません – Natecat

+0

うーん、良いアイデア、それを考慮していない。私はそれが私の方法の1つがそれを呼び出すのでだったと思う – flybonzai

答えて

2

インスタンスは、Shardが定義されたときにマニフェストクラスがインスタンス化されることを意味し、インスタンス化されるときではありません。それがOKなら、あなたがしたことは大丈夫です。

するのではなく、あなたのクラスの少なくとも1件のインスタンスがありますまで、これを延期クラスにNoneとしてそれを定義し、属性がNoneでない場合Shard.__init__()でそれをインスタンス化したい場合。

+0

ああそこに心配しないでください。 – flybonzai

関連する問題