python中'global varName'和'self.varName'之间的区别

时间:2016-02-29 11:08:04

标签: python class global-variables

在构造函数体中编写'global varName'有什么用? 我的意思是我们可以通过写'self.varName'来达到同样的目标吗?例如

class Mine_Global:
    def __init__(self):
        global varName
        varName = 3
        self.newInsVar = 7

if __name__ == "__main__":
    global varName
    obj1 = Mine_Global()
    print varName, obj1.newInsVar;
    varName = varName + 2
    print varName, obj1.newInsVar;

    obj2 = Mine_Global()
    print varName, obj2.newInsVar

1 个答案:

答案 0 :(得分:1)

如果varName谈论实例的属性,并且实例可能具有varName的不同值,则使用self.var

如果varName谈论模块,该模块的所有类和所有类的实例应该共享相同的varName值,那么使用global varName

相关问题