python不常用之nonlocal和globals

globals:

全局声明,直接上例子

name = "fuzizhzu"


def name_change():
    # name+="fdv"
    # 全局变量不能修改,这里会直接报错
    global name
    name += "fdvgfb "
    # 只能这样修改

不常用原因:
一般都直接重新定义,变成了局部变量,

name = "fuzizhzu"


def name_change():

    name = "fuzizhzufdvgfb "
    # 直接写成这种,而需要原name时还是一样的方式,需要新的name则在这里加return

nonlocal:

内部函数使用不可变变量声明,例子

def a():
    bb = "fvv"

    def inn():
        # bb+="kk"
        # 不可修改,会报错
        nonlocal bb
        bb += "jnj"

    inn()
    return bb


print(a())

不常用原因基本相同,直接重新赋值局部变量加return

local()和globals()函数

调用可以直接返回定义局部变量和全局变量,更不常用,只是在查看变量时方便一些

猜你喜欢

转载自blog.csdn.net/fuzizhu1/article/details/108465993