[英]Python call inner function
我有以下问题:
我有一个函数,其中包含另一个函数(请参见下面的代码)。 我需要调用在顶层函数中设置了参数文件名的函数getFastaEntry。我尝试使用generate_fasta_reader(filename).getFastaEntry()进行调用,但收到错误消息“函数对象没有属性getFastaEntry()”。 有人可以告诉我如何调用内部函数吗?
def generate_fasta_reader(filename, gzipped=False, strip=True):
def getFastaEntry():
filehandle = None
您必须返回内部函数。 否则无法访问它,并且实际上在函数结束后就不复存在了,因为此时没有对它的引用。 外部函数的参数可通过闭包提供给内部函数。 (我假设您实际的getFastaEntry()
函数实际上除了分配几乎立即超出范围的局部变量外, getFastaEntry()
执行其他操作。)
def generate_fasta_reader(filename, gzipped=False, strip=True):
def getFastaEntry():
filehandle = None
return getFastaEntry
呼叫:
getter = generate_fasta_reader("foo.txt")
getter()
或者一步(如果您只需要它,则每个外部函数调用一次调用内部函数):
generate_fasta_reader("foo.txt")()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.