0

我有一个名为 Variant 的课程。目前这个类有大约 10 个属性,例如:姓名、位置、基因、影响、父亲、母亲、孩子、疾病、参考和替代。

我不认为这些意味着什么真的很重要,但是现在我用这个类建模的变体带有很多额外的信息,多达 30 个不同的属性,似乎要在我的构造函数中特别提到每一个除了容易出错之外,它不会很“pythonic”。

变体以表格的形式出现,其中属性作为列名。有没有办法动态定义表中的各种属性?

4

1 回答 1

2

您可以创建一个小型工厂函数来创建Variant对象、读取表、设置表中的所有属性(使用内置的setattr)并返回对象。

像这样的东西(假设您在带有键和关联值的类似字典的对象中拥有行信息):

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