在函数中定义函数

刚才那些就是函数的基本知识了。我们来让你的知识更进一步。在Python中我们可以在一个函数中定义另一个函数:

  1. def hi(name="yasoob"):
  2. print("now you are inside the hi() function")
  3. def greet():
  4. return "now you are in the greet() function"
  5. def welcome():
  6. return "now you are in the welcome() function"
  7. print(greet())
  8. print(welcome())
  9. print("now you are back in the hi() function")
  10. hi()
  11. #output:now you are inside the hi() function
  12. # now you are in the greet() function
  13. # now you are in the welcome() function
  14. # now you are back in the hi() function
  15. # 上面展示了无论何时你调用hi(), greet()和welcome()将会同时被调用。
  16. # 然后greet()和welcome()函数在hi()函数之外是不能访问的,比如:
  17. greet()
  18. #outputs: NameError: name 'greet' is not defined

那现在我们知道了可以在函数中定义另外的函数。也就是说:我们可以创建嵌套的函数。现在你需要再多学一点,就是函数也能返回函数。