簡體   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