我對編程非常陌生,並開始學習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