闭包.py 868 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. # -*- coding: UTF-8 -*-
  2. """
  3. 是另外一个函数动态生成的函数,并且返回一个包含了外部作用域而非全局作用域变量名称的函数。
  4. 这个函数可以使用外部作用域的变量
  5. """
  6. # 名称空间(命名空间):在局部还是全局取的名字
  7. # 作用域: 在全局还是局部使用了
  8. ###============ ============###
  9. # def outer():
  10. # n = 10
  11. # def inner():
  12. # print(n)
  13. # return inner
  14. # f = outer()
  15. # f()
  16. ###============ ============###
  17. # def foo(age):
  18. # print(globals())
  19. # print(locals())
  20. # n = 10
  21. # foo(n)
  22. ###============ ============###
  23. # n = 10
  24. # def outer(arg):
  25. # def inner():
  26. # print(arg)
  27. # return inner
  28. # f = outer(n)
  29. # f()
  30. ###============ ============###
  31. li = [1,2,3]
  32. def outer(arg):
  33. def inner():
  34. arg.append(10)
  35. return inner
  36. outer(li)
  37. print(li)