0

Variant というクラスがあります。現時点では、このクラスには、名前、位置、遺伝子、影響、父、母、子供、病気、参照、代替などの約 10 の属性があります。

これらが何を意味するかは本当に重要ではないと思いますが、今、このクラスでモデリングしているバリアントには、最大 30 の異なる属性まで、多くの追加情報が付属しています。エラーが発生しやすいことに加えて、非常に「pythonic」ではありません。

バリアントは、列名として属性を持つテーブルの形式で提供されます。テーブルにあるさまざまな属性を動的に定義する方法はありますか?

4

1 に答える 1

2

Variantオブジェクトを作成し、テーブルを読み取り、(組み込みの を使用して) テーブルからすべての属性を設定しsetattr、オブジェクトを返す小さなファクトリ関数を作成できます。

このようなもの (キーと関連付けられた値を持つ dict のようなオブジェクトに行情報があると仮定します):

def variant_from_table(row):
    variant = Variant()
    for key, value in row:
        setattr(variant, key, value)
    return variant
于 2013-09-09T11:39:31.110 に答える