Python其他理解与思考

Python中作用域

  • python中无块级作用域,python中以函数为作用域
if 1 == 1:
    name = 'alex'

print(name)

输出结果:alex

  • python代码还没执行的时候,作用域就已经形成了
name = 'alex'


def f1():
    print(name)


def f2():
    name = 'eric'
    f1()

f2()

输出结果: alex

请思考:
1.为什么if 判断里面定义的不一定为执行的变量会有值,
2.为什么执行f2函数输出的是alex而不是eric

烧脑的新浪面试题

# return x
li = [lambda: x for x in range(10)]
# li列表
# li列表中的元素[函数,函数,函数,函数...]
# 函数在没有执行前,内部代码不执行
# ? li[0] ,函数
# ? 函数()
# 返回值是???
r = li[0]()
print(r)

输出结果: 9

文章目录
  1. 1. Python中作用域
  2. 2. 烧脑的新浪面试题
|