NKN*_*NKN 1 python variables class
self.var和类中的var之间有什么区别吗?例如:
class nameClass:
def names(self):
self.name1 = "aaaa"
name2 = "bbbb"
def printNames(self):
print self.name1
print name2
Run Code Online (Sandbox Code Playgroud)
现在,如果我实例化该类,我想使用name2变量,它不会让我.
obj1 = nameClass()
obj.printNames()
Run Code Online (Sandbox Code Playgroud)
它将打印name1,但对于name2,它说:
NameError: global name 'name2' is not defined
Run Code Online (Sandbox Code Playgroud)
所以我假设我们在一个方法中使用的变量最好不要使用'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
Run Code Online (Sandbox Code Playgroud)
这是一个相关的帖子:Python中的静态类变量