>>
>
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 表示類的...