我不确定在打印字典时会发生什么情况。
在Python 3中,我有一个parse_blast对象字典,称为transSwiss。每个对象的蛋白质ID是整个对象作为值的键。
我可以完整地打印transSwiss,也可以打印blasto.protein,但是当我将它们组合以获得字典值时,则不能。我不确定使用时会发生什么:
print(transSwiss[blasto.protein])
<__main__.parse_blast object at 0x000000373C5666A0>
这是代码
class parse_blast(object):
def __init__(self, line):
#Strip end-of-line and split on tabs
self.fields = line.strip("\n").split("\t")
self.transcriptId, self.isoform = self.fields[0].split("|")
self.swissStuff = self.fields[1].split("|")
self.swissProtId = self.swissStuff[3]
self.percentId = self.fields[2]
def filterblast(self):
return float(self.percentId) > 95
class parse_matrix(object):
#Consider __init__ as a Constructor
def __init__(self, matrix_lines):
(self.protein,
self.Sp_ds,
self.Sp_hs,
self.Sp_log,
self.Sp_plat) = matrix_lines.strip("\n").split("\t")
def separate_tuples(one_tuple):
return "\t".join(one_tuple)
blastmap = map(parse_blast, blast_output.readlines())
filtered = filter(parse_blast.filterblast, blastmap)
matrixmap = map(parse_matrix, matrix_output.readlines()[1:])
transSwiss = {blasto.transcriptId:blasto for blasto in filtered}
for matrixo in matrixmap:
print(transSwiss[matrixo.protein])
由于对象是由您定义的,因此您还需要告诉python您希望如何打印。您可以通过定义一个名为“ __str__”的函数来完成此操作,该函数返回您要打印对象的方式。
https://zh.wikibooks.org/wiki/Python_Programming/Classes#str
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句