国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

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

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

瀏覽:347日期: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 編程
相關文章:
主站蜘蛛池模板: 海阳市| 台北市| 新巴尔虎右旗| 雷波县| 独山县| 乳山市| 龙川县| 威海市| 柘荣县| 玉树县| 阿拉尔市| 汽车| 施甸县| 商水县| 都江堰市| 吴川市| 德惠市| 讷河市| 边坝县| 盐津县| 饶河县| 平定县| 修武县| 和静县| 松原市| 合作市| 永修县| 通道| 磴口县| 景德镇市| 江孜县| 贵定县| 六盘水市| 班戈县| 绥宁县| 滕州市| 崇信县| 恩平市| 珲春市| 灵台县| 晋江市|