• 技术文章 >Python技术 >Python基础教程

    python中nonlocal关键字是什么

    小妮浅浅小妮浅浅2021-09-17 09:27:54原创8369

    说明

    1、nonlocal声明的变量不是局部变量或全局变量,而是外部嵌套函数中的变量。

    2、nonlocal定义后的变量只会在调用的子函数中发挥作用。

    实例

    x = 1
    def func():
        nonlocal x
        x =2
        print(x)
    func()
    print(x)
     
    结果代码报错,SyntaxError: no binding for nonlocal 'x' found

    为什么我只是把global换 成了nonlocal,却报错了?因为nonlocal是用于函数中的函数。

    x = 1
    def func():
        x = 2
        def subfunc():
            nonlocal x
            x = x + 1
            print('subfunc内打印的值:%d' % x)
            return x
        print('func内打印的值:%d' % x)
        return subfunc
    func()
    print('func外打印的值:%d' % x)
     
    结果是:
    func内打印的值:2
    func外打印的值:1

    nonlocal关键字既没有改变全局变量x=1的值,也没有改变局部变量x=2的值。这就是指nonlocal声明的变量不是局部变量,也不是全局变量。

    以上就是python中nonlocal关键字的介绍,希望对大家有所帮助。更多Python学习指路:python基础教程

    本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

    专题推荐:python nonlocal
    品易云
    上一篇:python如何实现邮件的收发 下一篇:python如何在word中读取表格内容

    相关文章推荐

    • python套接字编程的服务器和客户端• Python如何搭建gRPC服务• Python lambda的速写用法• Python如何实现打字训练的程序• Python列表推导式如何使用• python中pyquery初始化的方法• python中pyquery的CSS选择器用法• python GUI编程有哪些模板• python拼音模块的特性• python中文生僻字的识别• python字符串常用技巧的总结• python settings路由配置的解决• python如何实现邮件的收发

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网