我有一个类(content.MyClass),它存储了大量有关细菌的事实。我多次称它为定义许多类型的细菌。它不是非常优雅,但它相当快速,可读,模块化(易于添加更多细菌)。Python风格:格式化多个冗长的类声明
问:有没有更好的方法我应该这样做?
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的(”排队,但因为一些名单很长,不会在这里工作同时,也有很多每班更多的变数;我修剪他们为这里的例子)
我个人认为,使用Python作为配置的文字语法是愉快的和有益的。所以我写了一个库来帮助你在C++程序中使用这种技术! https://github.com/jzwinck/pccl我都是用数据驱动的东西,但是我不清楚这还不是它。 – 2013-03-07 04:41:33
有趣的(我不是那个讽刺或任何东西)。主要来自JavaScript/web/JSON API背景,当然我通过这个镜头看到了一些东西 - 所以我很好奇,在乎要泄露一个这样的配置文件的小例子吗?在我的脑海中,我想它看起来很像JSON,尽管可能用更少的双引号':)' – 2013-03-07 04:45:54
这里有一个基本的,在pccl的单元测试中:https://github.com/jzwinck/pccl/blob/ master/test/PyConfig.test.py - 我喜欢关于“代码作为配置语法”的事情之一是,如果你有一天醒来(像我一样),并意识到你的程序完全知道如何配置的唯一方法本身是通过咨询Web服务或网络协议或其他方式,它可以。哦,正如你从例子中看到的那样,你可以把函数放在配置中! – 2013-03-07 04:47:54