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

时间:2018-12-18 16:06:02

标签: python

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

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

hi_func = outer_function("hi")
hi_func()

我只是想知道是否可以在不返回内部函数的情况下在外部函数内部使用内部函数,还是必须返回使用它?

1 个答案:

答案 0 :(得分:4)

  

在外部函数内部使用内部函数的任何方式,而无需返回内部函数

好的。您可以只调用内部函数。

您可能要执行此操作的一个原因是将逻辑的一部分封装在一个不需要在其他任何地方使用的函数中。因此,您只需在函数中创建它即可:

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)