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 @   lypbendlf  阅读(282)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示