python類的學習 2 類的成員

2021-10-03 15:34:27 字數 2937 閱讀 8568

>>

>

class

test

:def

setvalue

(self,value)

: self.__value = value #在類的內部可以直接訪問私有成員

defshow

(self)

:print

(self.__value)

>>

> t = test(0)

>>

> t.show(

)0

在python中,以下劃線開頭或結束的成員名有特殊的含義:

1、_***: 以乙個下劃線開頭為保護成員,不建議通過物件直接訪問

2、__***: 以兩個下劃線開頭不以兩個下劃線結束表示私有成員

3、***: 系統定義的特殊成員

資料成員用來描述類或物件的某些特徵或屬性,可以分為屬於物件的資料成員和屬於類的資料成員兩類。

class

singleinstance

: num =

0def

__init__

(self)

:if singleinstance.num >0:

raise exception(

'只能建立乙個物件'

) singleinstance.num +=

1t1 = singleinstance(

)t2 = singleinstance(

)#再次定義乙個物件時會報錯

python的成員方法可以分為 公有方法、私有方法、靜態方法和類方法。公有方法和私有方法一般是指屬於物件例項方法。其中私有方法是以兩個下劃線開始的,私有方法不能通過物件名直接訪問。

所有例項方法都必須至少乙個名為self的引數,並且必須是方法的第乙個形參,self引數代表當前物件。在例項方法中訪問例項成員時需要以self為字首,但在外部通過物件名呼叫時並不需要傳遞這個引數,因為通過物件呼叫公有方法時會把物件隱式繫結到self引數。

靜態方法和類方法都可以通過類名和物件名呼叫,但這兩種方法中不能直接訪問屬於物件的成員,只能訪問屬於類的成員。一般以cls作為類方法的第乙個引數表示該類自身。

class

root

: __total =

0def

__init__

(self,v)

:#構造方法,特殊方法

self.__value = v

self.__total +=

1def

show

(self)

:#普通例項方法,公有方法

print

('self.__value: '

,self.__value)

print

('root.__total: '

,root.__total)

@classmethod

#修飾器,宣告類方法

defclassshowtotal

(cls)

:#靜態方法,可以沒有引數

print

(cls.__total)

@staticmethod

defstaticshowtotal()

:print

(root.__total)

屬性是一種特殊形式的成員方法。

class

test

:def

__init__

(self,value)

: self.__value = value

@property

#修飾器,定義屬性

defvalue

(self)

:return self.__value

下面將**設定為可讀、可修改。不允許刪除

class

test

:def

__init__

(self,value)

: self.__value = value

def__get

(self)

:return self.__value #可讀屬性

def__set

(self,v)

: self.__value = v #修改私有資料成員的值

value =

property

(__get,__set)

#可讀可寫屬性,指定相應的讀寫方法

defshow

(self)

:print

(self.__value)

也可以將屬性設定為可讀、可修改、可刪除。

class

test

:def

__init__

(self,value)

: self.__value = value

def__get

(self)

:return self.__value #可讀屬性

def__set

(self,v)

: self.__value = v #修改私有資料成員的值

def__del

(self)

:del self.__value

value =

property

(__get,__set,__del)

#可讀可寫屬性,指定相應的讀寫方法

defshow

(self)

:print

(self.__value)

python類的成員 Python類成員

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

C 學習(2)類,物件,類成員

類的三大成員 類的靜態成員與例項成員 使用new操作符建立類的例項引用變數與例項的關係 using system.windows.forms namespace classandinstance 方法 method class program 使用wpf程式演示事件機制 using system.w...

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

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