python學習-day8_函數(global,nonlocal)

學習視頻:https://www.bilibili.com/video/BV1SE411N7Hi?p=55

以下內容僅供個人學習使用,侵刪 

#!/usr/bin/env python 
# -*- coding:utf-8 -*-
#global 只修改全局的變量
#nonlocal :在局部內,修改離nonlocal最近的一層,如果上一層沒有就繼續向上上層查找;本層不能出現同名變量
globals()#查看全局空間
locals()#查看局部空間
"""
函數的註釋:
函數名.__doc__()查看函數的註釋
函數名.__name__()查看函數名
"""

#------------------------------global
#a=10
# print (globals())#查看全局空間,全局變量以字典形式存在
# def func():
#     a=5
#     def foo():
#         global a#只改全局變量a
#         a+=1
#         print(a)
#     foo()
#     print(a)
# func()
# 11
# 5


# def func():
#     global a
#     a=10
# func()
# print(a)
#----------------------------------nonlocal
# a=10
# def func():
#     a=8
#     def foo():
#         a=6
#         def f1():
#             a=4
#             def f2():
#                 a=3
#                 def f3():
#                     nonlocal a
#                     a+=4
#                     print(a)#7
#                 f3()
#             print(a)#4
#             f2()
#         print(a)#6
#         f1()
#     print(a)#8
#     foo()
# func()
# print(a)#10

a=10
def func():
    a=8
    def foo():
        #a=6
        nonlocal a #要求本層沒有a,否則報錯
        a+=2
        def f1():
            print(a)#10
        f1()
    foo()
    print(a)#10
func()
print(a)#10


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章