繁体   English   中英

在函数内部调用函数

[英]Calling a function inside a function

这是一件简单的事情,我不知道为什么为什么不这样做,因为我以前在其他语言中已经做过很多次,也许我错过了一些东西。 无论如何,我有一个执行某项功能的函数,当我调用其他函数时,我尝试调用该函数。

上下文:难题实际上是由字符串的行和列组成的难题,而单词是我们在难题中寻找的单词

第一功能

def lr_occurrences(puzzle, word):    
    return puzzle.count(word)

第二功能

def do_tasks(puzzle, name):    
    print('Number of times', name, 'occurs left-to-right: ', end='')       
    lr_occurrences(puzzle, name)

但是当我打电话

do_tasks(PUZZLE1,'whatever') 

在外壳中,唯一弹出的是“次数...”,但是如果我调用

lr_occurences(PUZZLE1,'whatever')

返回值的效果很好。

有任何想法吗?

您正在调用lr_occurrences(puzzle, name) ,然后丢弃结果。 像您在该函数中之前所做的那样打印它,或者将其返回。

def do_tasks(puzzle, name):    
    print('Number of times', name, 'occurs left-to-right: ', end='')       
    print(lr_occurrences(puzzle, name))

要么:

def do_tasks(puzzle, name):    
    print('Number of times', name, 'occurs left-to-right: ', end='')       
    return lr_occurrences(puzzle, name)

如果返回它,则必须打印对do_tasks的调用,例如print(do_tasks(PUZZLE1,'whatever')) ,以使其显示。

您永远不会对返回值做任何事情。 退回或打印。

您的do_tasks函数应如下所示:

def do_tasks(puzzle, name):    
    print('Number of times', name, 'occurs left-to-right: ', end='')       
    return lr_occurrences(puzzle, name)

注意增加的return ,这样返回的值lr_occurrencesdo_tasks然后由返回do_tasks到它的调用者。

暂无
暂无

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

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