python類靜態變量


python的類靜態變量直接定義在類中即可,不需要修飾符,如:

1 class Test: 2     stc_attr = 1
3     def __init__(self,attr1,attr2): 4      self.attr1 = attr1 5         self.attr2 = attr2

在類Test中,stc_attr是屬於類Test的靜態變量,attr1和attr2是屬於對象的變量。並且通過類名和對象實例訪問stc_attr都是合法的。

可以看到類Test,對象obj1和對象obj2中stc_attr變量的內存地址是相同的

我們變更stc_attr的值(必須從類名訪問):

可以看到兩個對象中stc_attr變量的內存地址一起改變了,所以只要通過類名修改靜態變量的值就可以實現對象共享同一變量。

如果通過對象來修改靜態變量的值:

這里通過obj1對象修改了stc_attr的值,可以看到obj1.stc_attr的內存地址和類以及obj2對象中的stc_attr變量內存地址不同了。這種情況下,通過類名修改stc_attr的值不會對obj1.stc_attr的值產生影響。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM