Python:在 Class 的外部函数中调用内部函数

Python: Calling Inner Function Within Outer Function Within a Class

我有一个带有方法函数的 class 对象。在这个方法函数“动物”中,我有一个我想调用的内部函数。但似乎我的内部函数没有被调用,因为正确的结果应该return“点击此处”而不是“示例文本”。

这是我的 class 代码:

class PandaClass(object):
    def __init__(self, max_figure):
        self.tree = {}
        self.max_figure = max_figure
        
    def animal(self, list_sample, figure):
        
        def inner_function():
            if len(list_sample) == 0:
                return "hit here"
        inner_function()
        
        return "sample text" 

我实例化 class 并使用以下代码调用动物函数:

panda = PandaClass(max_figure=7)
panda.animal(list_sample=[], figure=0)

我希望代码 return“点击此处”,这意味着内部函数得到 运行 但我得到的是“示例文本”。请告诉我如何更正此问题。

return 总是将其结果提供给调用它的代码。在这种情况下,外部函数调用内部函数,因此内部函数return将它的值传递给外部函数。

如果你想让外部函数return得到内部函数return的结果,你需要做这样的事情:

    def animal(self, list_sample, figure):
        
        def inner_function():
            if len(list_sample) == 0:
                return "hit here"
        inner_func_result = inner_function()
        
        
        if inner_func_result:
            return inner_func_result
        else:
            return "sample text"