久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

Python小白不正確的使用類變量實例

瀏覽:359日期:2022-07-24 08:05:57

不正確的使用類變量

看下面一個例子:

>>> class A(object):... x = 1...>>> class B(A):... pass...>>> class C(A):... pass...>>> print A.x, B.x, C.x1 1 1

看起來沒有問題。

>>> B.x = 2>>> print A.x, B.x, C.x1 2 1

嗯哈,還是和預想的一樣

>>> A.x = 3>>> print A.x, B.x, C.x3 2 3

我了個去。只是改變了A.x,為啥C.x也變了?

在Python里,類變量通常在內部被當做字典來處理并遵循通常所說的方法解析順序(Method Resolution Order (MRO))。因此在上面的代碼中,因為屬性x在類C中找不到,因此它會往上去它的基類中查找(在上面的例子中只有A這個類,當然Python是支持多重繼承(multiple inheritance)的)。換句話說,C沒有它自己獨立于A的屬性x。因此對C.x的引用實際上是對A.x的引用。(B.x不是對A.x的引用是因為在第二步里B.x=2將B.x引用到了2這個對象上,倘若沒有如此,B.x仍然是引用到A.x上的。)

知識點補充:

類變量、實例變量概念

類變量:

類變量就是定義在類中,但是在函數體之外的變量。通常不使用self.變量名賦值的變量。類變量通常不作為類的實例變量的,類變量對于所有實例化的對象中是公用的。

實例變量:

實例變量是定義在方法中的變量,使用self綁定到實例上的變量,只是對當前實例起作用。

以上就是Python小白不正確的使用類變量實例的詳細內容,更多關于Python新手不正確的使用類變量的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 九龙城区| 铁力市| 武平县| 沭阳县| 岑溪市| 祥云县| 丰都县| 汶川县| 安图县| 柳江县| 体育| 金门县| 丹寨县| 万全县| 孝昌县| 贵德县| 黑龙江省| 北流市| 西峡县| 宜昌市| 南川市| 博乐市| 新疆| 简阳市| 泾阳县| 革吉县| 安塞县| 长葛市| 昭苏县| 河池市| 通榆县| 桐城市| 义乌市| 鲁甸县| 淮南市| 天祝| 德清县| 峡江县| 桂平市| 两当县| 赤城县|