函数列表/词典未返回

时间:2014-06-29 19:28:24

标签: python bioinformatics biopython

我尝试使用BioPython在Python中编写脚本,该脚本读取FASTA文件并生成原始DNA序列列表作为条目。

由于这个代码将被我将编写的许多其他脚本使用,我希望这个目的的函数位于一个单独的Python文件中,我可以在我编写的每个其他脚本的开头导入。包含我当前正在调用的函数的脚本如下:

from Bio import SeqIO
def read_fasta(dna):
    genome = []
    for seq_record in SeqIO.parse(dna, "fasta"):
        genome.append(str(seq_record.seq))
    return genome

当我从cmd在Python中调用此函数时,该函数将按照我的意愿工作并读取生成列表的文件。但是,如果我再次尝试访问列表genome,则会收到Traceback | NameError: name 'genome' not defined错误。

有人可以解释为什么会发生这种情况,即使我已经提出了return genome声明吗?我能做些什么来解决这个问题?

1 个答案:

答案 0 :(得分:3)

genome位于函数的本地范围内,因此从"外部"中看不到它。您应该将read_fasta函数的结果分配给某个变量,以便访问函数的返回结果。例如:

new_variable = read_fasta("pcr_template.fasta")

并且已阅读 - 让new_variable以[{1}}作为参数分配给函数read_fasta的结果。

现在只需访问"pcr_template.fasta"即可访问genome(或您的函数返回的任何内容)。