我有一个类(content.MyClass),其中存储了许多有关细菌的事实。我称它多次,以定义多种类型的细菌。它不是非常优雅,但是相当快速,可读和模块化(易于添加更多细菌)。

问题:我应该有更好的方法吗?

import content
def myMethod():
    bacteria = {} #A dictionary I fill with 'Bacteria Name':object

    bacteria['Staph Aureus'] = content.MyClass(
        bug_type = ['gram+'],
        virulence = ['Protein A', 'TSST-1', 'exfoiative toxin', 'enterotoxin'],
        labs = ['catalase+', 'coagulase+']
    )
    bacteria['Staph Epidermidis'] = content.MyClass(
        bug_type = ['gram+'],
        sx = ['infects prosthetic devices']
    )
    #Etc. about 25 more times.
    return bacteria


(注:我知道PEP 8表示我应该缩进所有内容以使其与“ MyClass(”)对齐,但是由于某些列表很长,因此在这里行不通。而且,每个类中都有很多变量;我修剪它们作为此处的示例。)

最佳答案

问题:我应该有更好的方法吗?


您正在考虑solving the wrong problem.

使您的班级data-driven:将代码与数据分开。从数据源加载定义;像JSON或YAML文件这样简单的文件就可以正常工作。


  在进行数据驱动的编程时,人们可以清楚地将代码与代码所作用的数据结构区分开,并同时对二者进行设计,以便人们可以通过编辑代码而不是数据结构来更改程序的逻辑。


http://www.faqs.org/docs/artu/ch09s01.html

关于python - Python样式:格式化多个冗长的类声明,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15263163/

10-15 16:59