我有一个包含唯一项(名称,如果你愿意)的列表,每次我运行我的脚本更改。所有这些项目都有一些计算的属性,这些属性在脚本期间被修改。例如,'S1'将具有pos = 55和ori = 'R'。我想要一个简单的方法来访问这些属性基于他们的名字。
给这些属性"赋值"的最好方法是什么?我一直在四处寻找,字典似乎不是前进的正确方式,所以我尝试使用类,并使以下非功能代码代码:
class Primer: #contains all properties of a primer
def __init__(self):
""" Contains all properties of the primer """
self.pos = 0 #outermost 5' position in sequence to bind
self.ori = '' #F(orward) or R(everse)
primer_list = ['S', 'M1', 'M2', 'M3', 'E']
for i in primer_list:
i = primer()
print S.pos #this should give me the pos value of 'S'
我是否在正确的轨道上,但遗漏了一些东西,或者有更好的方法来做到这一点?
编辑我忘了说,我还需要以某种方式恢复我的值。同样不知道如何做到这一点
print primer_list[0].pos #should give me the pos value of S in my example
您的列表有问题,您实际上没有用创建的实例替换旧的值。我还添加了一个name字段,以便您可以跟踪每个实例。
class Primer: #contains all properties of a primer
def __init__(self, name):
""" Contains all properties of the primer """
self.name = name
self.pos = 0 #outermost 5' position in sequence to bind
self.ori = '' #F(orward) or R(everse)
def __str__(self):
return self.name
primer_list = ['S', 'M1', 'M2', 'M3', 'E']
new_primer = [Primer(x) for x in primer_list]
for i in new_primer:
print i
print i.pos
print i.ori