python一個類調用另一個類的方法,Python自定義類的成員并不一直是所有對象共享的

 2023-10-04 阅读 29 评论 0

摘要:在Python中,變量不直接存儲值,而是存儲值的引用。列表、元組、字典、集合以及其他容器類對象中的元素也是存儲值的引用。對象中的成員也是存儲的引用。 python一個類調用另一個類的方法,自定義類的數據成員是該類所有對象共有的,既可以通過類訪問࿰

在Python中,變量不直接存儲值,而是存儲值的引用。列表、元組、字典、集合以及其他容器類對象中的元素也是存儲值的引用。對象中的成員也是存儲的引用。

python一個類調用另一個類的方法,自定義類的數據成員是該類所有對象共有的,既可以通過類訪問,也可以通過該類任意對象進行訪問。

python內置對象有哪些,如果通過類把成員的值進行了修改,該類對象都能得到體現。然而,如果通過其中某個對象修改了value的值,不會影響類和該類其他對象,因為這樣實際上是修改了對象中成員的引用。

如果類的數據成員是可變序列,并且通過可變序列自身的原地修改方法或者下標方式修改部分元素,那么通過類或者該類任意對象都可以實現統一的影響。

為了便于理解類和對象的內存管理,可以打開這個網址http://pythontutor.com/live.html#mode=edit,然后輸入代碼觀察內存的使用的變化。例如,剛創建類和對象時,

修改t1.value的值之后,t1.value不再共享類的數據成員。

修改T.value之后,不影響已改變的t1.value,并且t2.value仍然共享類的數據成員。

類似地,當類成員value為列表[1,2,3]時,相應的一系列修改之后,內存布局如圖,不管是通過類還是通過該類的對象,使用列表自身的原地修改方法或者下標的形式,修改的都是同一個列表。

自定義類中的方法也遵守同樣的規則。

如果修改了對象的成員引用之后,仍想訪問對象所屬類的成員,可以使用下面的方法。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/112403.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息