Skip to main content
 首页 » 编程设计

python:var 与 self.var(有什么区别)

2025年05月04日14shihaiming

类中的 self.var 和 var 有区别吗? 例如:

class nameClass: 
    def names(self): 
        self.name1 = "aaaa" 
        name2 = "bbbb" 
 
    def printNames(self): 
        print self.name1 
        print name2 

现在,如果我实例化该类并且我想使用 name2 变量,它不允许我这样做。

 obj1 = nameClass() 
 obj.printNames() 

它会打印 name1 但对于 name2 它说:

NameError: global name 'name2' is not defined  

所以我假设我们只在方法内部使用的变量最好不要使用“self” 但对于我们稍后要修改或将它们传递给其他方法的其他变量,最好使用“self”。

还有什么不同吗?!

请您参考如下方法:

class Foo: 
    name1 = 'class variable' 
 
    def __init__(self): 
        self.name2 = 'instance variable' 
        name3 = 'local variable' 
 
    def test(self): 
        print self.name1  # ok 
        print self.name2  # ok 
        print name3       # no 

这是一个相关的帖子:Static class variables in Python