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

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

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

瀏覽:363日期: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 編程
相關文章:
主站蜘蛛池模板: 隆尧县| 库车县| 汾阳市| 布拖县| 三河市| 长海县| 和顺县| 哈巴河县| 临桂县| 巫山县| 内乡县| 阿城市| 江口县| 长泰县| 米林县| 双柏县| 綦江县| 牙克石市| 雅江县| 和平区| 横峰县| 拉萨市| 崇文区| 景谷| 长白| 苏尼特左旗| 西丰县| 固安县| 乌兰察布市| 延吉市| 凤城市| 巴里| 宁夏| 潜山县| 樟树市| 宝清县| 离岛区| 屯昌县| 休宁县| 林芝县| 嘉荫县|