类中的 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
