0
一個simpilified代碼如下內部變量:龍捲風/ Python的:爲什麼我不能復位類
....
class indexHandler(tornado.web.RequestHandler):
a=[]
def callback(self,response):
#Do some other things, like write into database
self.a=[]
def get(self):
print self.a
self.a.append('abc')
client=tornado.httpclient.AsyncHTTPClient()
client.fetch('http://google.com',self.callback)
self.write('OK')
....
當我訪問該網頁第一次,外殼顯示 []
。 頁面重新載入後,顯示['abc']
,重新載入一次,然後顯示['abc','abc']
等等。
爲什麼a
不能重置?
因爲'a'不是實例屬性,而是* class *屬性。它在所有實例中共享。 – 2013-02-23 15:12:16
尋找規範的問題來鏈接你,因爲這是所有的時間* *。儘管如此,我不願意將它鏈接到[「Python中最小的驚訝」:可變的默認參數](http://stackoverflow.com/q/1132941)。 – 2013-02-23 15:15:14
有兩個變量。前者是類變量a(使用indexHandler.a可訪問),另一個是實例變量(使用self.a可訪問)。兩者沒有共同之處。 – mkind 2013-02-23 15:15:49