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


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值