python 多线程笔记(6)-- 闭包
生活随笔
收集整理的這篇文章主要介紹了
python 多线程笔记(6)-- 闭包
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
在類里弄一個閉包出來
?
很多資料上說,類內(nèi)部的變量有兩種。
按定義所在的位置,分__init__上方的和__init__下方的
按內(nèi)存所在的位置,分類的和實例的,或者說公共的和私有的
?
現(xiàn)在,我想在類里定義一個保存實例個數(shù)的變量 x,如下:
>>> class Foo: . . . x = 0 . . . def __init__(self): . . . self.x += 1 . . . print(self.x)>>> f1 = Foo() 1 >>> f2 = Foo() 1 >>> Foo.x 0?
顯然,結(jié)果跟想法不符。
這里,各個實例的x是私有的,而類的x一直是零!
?
?
?
換種思路,把 x 定義成列表,看看
>>> class Bar: . . . x = [0] . . . def __init__(self): . . . self.x[0] += 1 . . . print(self.x[0])>>> b1 = Bar() 1 >>> b2 = Bar() 2 >>> Bar.x[0] 2,額,可以了!因為x是對象,他的內(nèi)存空間地址就固定了(這個說法不太恰當(dāng),將就理解吧)
?
總結(jié)
以上是生活随笔為你收集整理的python 多线程笔记(6)-- 闭包的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 传天猫将推“小时购” 阿里副总裁刘鹏挂帅
- 下一篇: 机器学习算法 Python R速查表