函数的作用域关系.py 648 B

12345678910111213141516171819202122232425262728293031
  1. # -*- coding: UTF-8 -*-
  2. # 作用域关系是在函数定义阶段就已经固定的,与函数的调用位置无关
  3. x = 1
  4. def f2():
  5. print(x)
  6. x = 100
  7. def f3(func):
  8. x = 2
  9. func() # 在前面已经调用了 x = 1000
  10. print(x) # 优先使用局部变量 x = 2
  11. x = 1000
  12. f3(f2)
  13. li = [lambda : i for i in range(10)] # i 是全局变量,附值最好一个 9 ,所以所有函数中 i = 9
  14. # li 中的元素是什么类型的对象
  15. """ 函数 """
  16. print(li)
  17. # li[0] 是什么,能否被调用
  18. """ 是一个函数,可以被调用 """
  19. # print(type(li))
  20. respond = li[0]()
  21. print(respond)
  22. print(li[8]()) # 输出还是9