Python中以函式為作用域

jhchena發表於2024-07-24
點選檢視程式碼
# 第一題
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()

相關文章