国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python 方法中變量加self和不加的區(qū)別

2019-11-09 20:11:05
字體:
供稿:網(wǎng)友

這段代碼我覺得很好的說明了python中類的方法在加self和不加self的區(qū)別。

123456789101112131415161718192021222324252627282930313233343536373839404142434445>>> class AAA(object):...     def go(self):...         self.one = 'hello'...>>> class BBB(object):...     def go(self):...         one = 'hello'...>>> a1 = AAA()>>> a1.go()>>> a1.one'hello'>>> a2 = AAA()>>> a2.oneTraceback (most recent call last):  File "<stdin>", line 1in <module>AttributeError: 'AAA' object has no attribute 'one'>>> a2.go()>>> a2.one'hello'>>> b1 = BBB()>>> b1.go()>>> b1.oneTraceback (most recent call last):  File "<stdin>", line 1in <module>AttributeError: 'BBB' object has no attribute 'one'>>> BBB.oneTraceback (most recent call last):  File "<stdin>", line 1in <module>AttributeError: type object 'BBB' has no attribute 'one'>>> class BBB(object):...     def go(self):...         one = 'hello'...         PRint one...         self.another = one...>>> b2 = BBB()>>> b2.go()hello>>> b2.another'hello'>>> b2.oneTraceback (most recent call last):  File "<stdin>", line 1in <module>AttributeError: 'BBB' object has no attribute 'one'

個(gè)人認(rèn)為方法中加self的變量可以看成是類的屬性,或者是特性。使用方法改變和調(diào)用屬性,屬性改變實(shí)例的狀態(tài)。方法中不加self的變量可以看成一個(gè)局部變量,該變量不能被直接引用。

類本身的局部變量(個(gè)人的認(rèn)為定義在方法以外不以self開頭的變量是類本身的局部變量)是可以被直接掉用的,注意這里不是指上面所說的方法內(nèi)的局部變量(這兩個(gè)命名空間不同)。如果方法中有有變量與類的局部變量同名,那么方法中的局部變量將會(huì)屏蔽類中的局部變量即類中的局部變量不在起作用。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 南丹县| 金山区| 隆昌县| 衡阳市| 共和县| 长寿区| 惠安县| 黔江区| 余江县| 察雅县| 盘山县| 诸暨市| 万山特区| 洞口县| 株洲县| 东山县| 朝阳县| 桃园市| 乐安县| 砚山县| 临泉县| 思茅市| 江孜县| 九台市| 依兰县| 金沙县| 德令哈市| 奉新县| 射洪县| 宁晋县| 沁水县| 朝阳区| 青岛市| 定安县| 马龙县| 收藏| 西城区| 庆安县| 武鸣县| 秦安县| 斗六市|