What is the difference between non local variable and global variable? Python

What is the difference between non local variable and global variable?

回答1

"nonlocal" means that a variable is "neither local or global", i.e, the variable is from an enclosing namespace (typically from an outer function of a nested function).

An important difference between nonlocal and global is that the a nonlocal variable must have been already bound in the enclosing namespace (otherwise an syntaxError will be raised) while a global declaration in a local scope does not require the variable is pre-bound (it will create a new binding in the global namespace if the variable is not pre-bound).

 

回答2

The nonlocal variables are present in a nested block. A keyword nonlocal is used and the value from the nearest enclosing block is taken. For example:

def outer():
    x = "local"
    
    def inner():
        nonlocal x
        x = "nonlocal"
        print("inner:", x)
    
    inner()
    print("outer:", x)

The output will be "nonlocal" both the times as the value of x has been changed by the inner function.

 

 

作者:Chuck Lu    GitHub    
posted @   ChuckLu  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2021-10-29 TortoiseGit with openssh key not authenticating using ssh-agent
2021-10-29 parsing @ in MVC javascript section? [duplicate]
2021-10-29 Git SSH public key authentication failed with git on Azure DevOps
2020-10-29 Difference between dict and set (python)
2014-10-29 Exception.StackTrace
点击右上角即可分享
微信分享提示