global和nonlocal

global和nonlocalglobal代码#global关键字用来在函数或其他局部作用域中使用全局变量。但是如果不修改全局变量也可以不使用global关键字。gcount=0defglobal_test():print(gcount)defglobal_counter():globalgcountgcount+=1returngcountgc=globa

global
代码

# global关键字用来在函数或其他局部作用域中使用全局变量。但是如果不修改全局变量也可以不使用global关键字。
gcount = 0


def global_test():
    print(gcount)


def global_counter():
    global gcount
    gcount += 1
    return gcount

gc = global_counter
def global_counter_test():
    print(gc(),gc(),gc())


global_counter_test()

输出

1 2 3

nonlocal
代码

# nonlocal关键字用来在函数或其他作用域中使用外层(非全局)变量。
def make_counter():
    count = 0

    def counter():
        nonlocal count
        count += 1
        return count

    return counter


def make_counter_test():
    mc = make_counter()
    print(mc(),mc(),mc())


make_counter_test()


def tester(statrt):
    state = statrt

    def nestrd(lable): # 工厂函数
        nonlocal state
        lable += 1
        return lable, state

    return nestrd


f = tester('zhou')
print(f(2))
print(f(3))
print(f(4))

输出

1 2 3
(3, 'zhou')
(4, 'zhou')
(5, 'zhou')

今天的文章global和nonlocal分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/9525.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注