我有一个类(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/