23 函数为作用域练习

# 第一题
for item in range(10):  #不报错,没有函数,所有操作在全局作用域里面执行,item最后赋值为:9,此时item在缩进与全局都可以使用
    pass
print(item)

# 第二题
item = 10
def func():
    for item in range(10): #优先在本地查找,找不到在到全局查找
        pass 
    print(item) #item为9 
func()

# 第三题
item = 10
def func():
    item = 2
    def inner():
        print(item)
    for item in range(10): #for 循环将item赋值为:9
        pass 
    inner() #函数会先从上级进行查找,此时item为:9
func()

# 第四题【新浪微博】
def func():
    for num in range(10): #循环后num为:9 
        pass
    v4 = [lambda :num+10,lambda :num+100,lambda :num+100,] #自己没有Num ,会到父级里面云查找
    result1 = v4[1]()
    result2 = v4[2]()
    print(result1,result2)
func()

# 第五题【新浪微博】
def func():
    for num in range(10):
        pass
    v4 = [lambda :num+10,lambda :num+100,lambda :num+100,] #函数未调用,内部代码永久都不会执行
    result1 = v4[1]()  #109
    num = 73
    result2 = v4[2]()
    print(result1,result2) #173
func()

posted @ 2024-09-26 05:59  jhchena  阅读(4)  评论(0编辑  收藏  举报