python中的global

https://blog.csdn.net/weixin_40894921/article/details/88528159

1.全局

从上面给的例子中可以看出,它可以被用来全局的

2.类内部函数的内部

class A:
    def f(self):
        a=2
        def ff():
            a=5#这里是无法改变a的
        ff()
        return a
a=A()
print(a.f())

#输出:
2

如果在ff中申明为global

class A:
    def f(self):
        a=2
        def ff():
            global a
            a=5
        ff()
        return a
a=A()
print(a.f())

#输出:
2

还是不行,如果尝试在ff中对a修改:

class A:
    def f(self):
        a=2
        def ff():
            global a
            a+=1
        ff()
        return a
a=A()
print(a.f())

#输出:
TypeError: unsupported operand type(s) for +=: 'A' and 'int'

就会报以上错误。所以这个global是不能在类内的函数的函数使用的?

2020-9-22更新——————

1.global用在想对全局进行修改时

https://blog.csdn.net/songyunli1111/article/details/76095971,讲的不错。

如果没有生命的话,就被认为是函数内的局部变量。

posted @ 2020-06-06 09:49  lypbendlf  阅读(271)  评论(0编辑  收藏  举报