首页 » InfoTech »

python的global和nonlocal

2018年4月22日 / 16次阅读
Python

打开支付宝首页,搜索“529018372”,即可领取红包!可重复领。

特色图片

The global statement can be used to indicate that particular variables live in the global scope and should be rebound there; the nonlocal statement indicates that particular variables live in an enclosing scope and should be rebound there.

还是看python代码来理解吧,这是官方的示例,注释是麦新杰加的:

def scope_test():
    def do_local():
        spam = "local spam" #do_local()函数本地的变量,谁都不影响

    def do_nonlocal():
        nonlocal spam
        spam = "nonlocal spam" #申明这个spam变量是来自外层namespace

    def do_global():
        global spam
        spam = "global spam" #申明这个spam变量来自全局namespace,注意,这个全局变量在此之前还不存在

    spam = "test spam"
    do_local()
    print("After local assignment:", spam)
    do_nonlocal()
    print("After nonlocal assignment:", spam)
    do_global()
    print("After global assignment:", spam)

scope_test()
print("In global scope:", spam)

这段代码运行的结果如下:

After local assignment: test spam
After nonlocal assignment: nonlocal spam
After global assignment: nonlocal spam # 代码执行到这里,实际上是申明了一个全局变量并给它赋值。
In global scope: global spam

这样,我们就理解了python的global和nonlocal申明的含义。

本文链接:http://www.maixj.net/ict/python-global-nonlocal-17717
云上小悟 麦新杰(QQ:1093023102)

相关文章

评论是美德

《python的global和nonlocal》有1条评论

无力满足评论实名制,评论对非实名注册用户关闭,有事QQ:1093023102.

  • 麦新杰

    在函数中使用全局的immutable变量,需要申明global,而mutable变量就不需要申明,直接使用。 [ ]


前一篇:
后一篇:

栏目精选

云上小悟,麦新杰的独立博客

Ctrl+D 收藏本页

栏目

AD

ppdai

©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有 备案号:苏ICP备14045477号-1。云上小悟网站部分内容来源于网络,转载目的是为了整合信息,收藏学习,服务大家,有些转载内容也难以判断是否有侵权问题,如果侵犯了您的权益,请及时联系站长,我会立即删除。

网站二维码
go to top