python類成員 Python類之類的成員

2021-10-11 00:10:02 字數 2064 閱讀 8750

對於乙個學c++的朋友來說,python類中,哪些是私有成員,哪些是共有成員,估計一直傻傻分不清。

一、本篇部落格要解決的問題:

python類中,哪些是私有成員?哪些是共有成員?

二、 關於python的類

所以,你寫的型別其本身有屬性和方法,而型別對應的例項,也有自己的屬性,不過並沒有方法。

也就是說,python中的類,實際上有兩層含義,第一層是類本身,第二層是例項。

型別本身有屬性和方法,類的屬性可以在所有例項中傳遞,類的方法用來處理例項的資料。

例項本身只有屬性,沒有方法,屬性就是要被類的方法所處理的資料。

python通過class語句定義乙個類,通過__init__(self, *para)構造乙個例項,並通過__del__(self)來解構。class是類,self是例項。

三、解決問題。

了解了上面所說的類和例項之後,你可能就已經明白了。python中類的屬性其實就是共有變數,我們稱之為類的變數,類的變數可以在所有例項中間傳遞。而例項的屬性則可以大致看成是私有變數,但其實這並不是嚴格意義上的私有變數,因為我們依然可以通過instance.property來訪問並修改這些屬性。綜上所述:python中,類的成員,有兩種。

1、類成員。可以通過class.property來呼叫,也可以通過instance.property來呼叫,該屬性可以在所有例項中傳遞

2、例項的成員。只能通過instance.property來呼叫,該屬性不與其他例項共享。

3、注意,類的self相當於c++中的指標,但是也有所不同,因為self只指示該例項的資料,不指示類的屬性和方法。所以當你需要在類的方法中呼叫類的屬性或者類的其他方法的時候,你需要用類名或者self來指明。但是用類名和用self來指明時,結果是不一樣的。詳情請見四中的例項**。

四、示例**

#-*- coding: utf-8 -*-#author: zxr#time: 2019-04-10#functionality: test class

classtestclass:

val=0def __init__(self, v):

self.val1=vdefshow(self):print ('-'*60)print(self.val1)defadd_using_classname(self):

self.val1+=testclass.val

testclass.show(self)#below code is unvalid

#self.val1 += val

#show()

defadd_using_self(self):

self.val1+=self.val

self.show()if __name__ == '__main__':

tc= testclass(1)

tp= testclass(10)print(testclass.val)print(tc.val)print(tc.val1)print(testclass.val)print(tp.val)print(tp.val1)print ('-'*60)

testclass.val= 2

print ('-'*60)print(testclass.val)print(tc.val)print(tc.val1)print(testclass.val)print(tp.val)print(tp.val1)print ('-'*60)

tp.val1= 3tc.val1= 4tp.val= 30tc.val= 40

print ('-'*60)print(testclass.val)print(tp.val)print(tc.val)print(tp.val1)print(tc.val1)

tc.add_using_classname()

tp.add_using_classname()

tc.add_using_self()

tp.add_using_self()

test class

總結:python中的類與c++中的類是不一樣的。python中的每例項化乙個例項之後,就拷貝了乙個該類的副本,對這個例項的任何修改都不會影響到類。同樣的,要想修改類中的屬性,也只能在類中修改,在例項中的修改影響不了其他例項。

python類的成員 Python類成員

乙個是乙個類屬性,另乙個是乙個例項屬性。它們是不同的,但是它們之間的關係密切相關,使得它們在時間上看起來一樣。它與python查詢屬性的方式有關。有層次結構。在簡單的情況下,它可能如下所示 instance subclass superclass object built in type 當你在這樣...

python類成員 Python 類的特殊成員解析

類的成員有兩種形式 公有成員,在任何地方都能訪問 私有成員,只有在類的內部才能方法,私有成員命名時,前兩個字元是下劃線。class foo def init self,name,age self.name name self.age age def show self 間接方法私有字段 return...

python類的成員 python 類的特殊成員

上文介紹了python的類成員以及成員修飾符,從而了解到類中有字段 方法和屬性三大類成員,並且成員名前如果有兩個下劃線,則表示該成員是私有成員,私有成員只能由類內部呼叫。無論人或事物往往都有不按套路出牌的情況,python的類成員也是如此,存在著一些具有特殊含義的成員,詳情如下 1.doc 表示類的...