Python 有没有一种方法可以使用内部函数而不返回它们

Python 有没有一种方法可以使用内部函数而不返回它们,python,Python,我正在学习内部和外部功能,例如: def outer_function(msg): def inner_function(): print(msg) return inner_function hi_func = outer_function("hi") hi_func() 我只是好奇,是否有任何方法可以在外部函数的内部使用内部函数,而不返回内部函数,还是必须返回才能使用 在外部函数内部使用内部函数而不返回内部函数的任何方法 当然。您可以只调用内部函数 您可能

我正在学习内部和外部功能,例如:

def outer_function(msg):
    def inner_function():
        print(msg)
    return inner_function

hi_func = outer_function("hi")
hi_func()
我只是好奇,是否有任何方法可以在外部函数的内部使用内部函数,而不返回内部函数,还是必须返回才能使用

在外部函数内部使用内部函数而不返回内部函数的任何方法

当然。您可以只调用内部函数

您可能希望这样做的一个原因是将逻辑的一部分封装在一个不需要在其他任何地方使用的函数中。因此,您只需在函数中创建它:

def foo(n):
   def generate_rand_num(x):
      import random
      # ... add more logic here to come up with this random num
      return random.randint(0, x)

   a = generate_rand_num(n)
   b = generate_rand_num(n)
   c = generate_rand_num(n)
   return (a+b+c) < n

print foo(123)
def foo(n):
def生成随机数(x):
随机输入
# ... 在这里添加更多的逻辑来产生这个随机数
返回random.randint(0,x)
a=生成随机数(n)
b=生成随机数(n)
c=生成随机数(n)
返回(a+b+c)
?您当然可以在外部函数中调用内部函数。为什么您认为必须返回内部函数?只需调用它,而不是返回它。您始终可以在不返回内部函数的情况下调用封闭函数中的内部函数。请记住,像所有Python对象一样,这些内部函数也有作用域。您应该返回内部函数还是只执行它取决于您想要实现什么。@RobertHarvey他们可能正在看一个带有@decorators的示例