我对编程非常陌生,并开始学习python。可能看起来很愚蠢的问题,所以请原谅我的无知。 考虑下面的代码片段:了解python类属性
class Test1:
bar = 10
def display(self,foo):
self.foo=foo
print "foo : ",self.foo #80
def display1(self):
print "bar: ", self.bar #10
print "again foo: ", self.foo #80
if __name__ == '__main__':
test1 = Test1()
test1.display(80)
test1.display1()
print test1.bar #10
print test1.foo #80
我想了解的是什么(的地方,我们已经定义了他们WRT)的范围明智的,他们是在与所有的地方都能方便操作使用foo和酒吧之间的区别彼此唯一的区别是一个是内部函数而另一个是内部类但它们都是“实例”变量。 那么哪个是好的做法?
另外,如果我稍微修改如下显示功能:
def display(self,foo):
self.foo=foo
foo = foo
print "self.foo : ",self.foo
print "foo : ",foo
能有人请解释蟒蛇是如何看待这一点,因为在什么区别/意义这个self
关键字带来两个foo
之间。
不,“bar”不是*实例变量。这两者是非常不同的,这就是为什么它不是关于“良好的做法”。这是关于什么适合你的情况,因为他们有不同的目的。 – phant0m
另外'self.bar'的作品,因为名称'bar'首先在实例的名称空间中搜索,然后在类中搜索。 'self.bar'工作的事实并不总是*意味着'bar'是一个实例变量。 – ersran9