繁体   English   中英

未返回功能中的列表/字典

[英]Lists/Dictionaries from function not returned

我正在尝试使用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 Traceback | NameError: name 'genome' not defined错误。

有人甚至可以说我已经提出了return genome声明,可以解释为什么会这样吗? 我该如何解决这个问题?

genome在功能的局部范围内,因此从“外部”看不到。 您应该将read_fasta函数的结果分配给某个变量,以便访问该函数的返回结果。 例如:

new_variable = read_fasta("pcr_template.fasta")

而且它读取-让new_variable被分配给函数的结果read_fasta"pcr_template.fasta"作为参数。

现在,只需访问new_variable即可访问genome (或函数返回的任何内容)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM