
類別與實體
|
125
依照慣例,以
單一個
底線開頭的識別字是要當作繫結它們的範疇(scope)
之私有名稱,不管這個範疇是不是一個類別。Python 編譯器並不強制施加
這個隱私慣例:是否要遵守它,由程式設計師自行決定。
類別說明文件字串
如果類別主體中的第一個述句是一個字串字面值(string literal),編譯器
就會將那個字串繫結為該類別的說明文件字串(documentation string)。 名
為
_ _doc_ _
的屬性,是類別的
docstring
。說明文件字串的更多資訊,請參
閱前面的「Docstrings」。
描述器
一個
描述器
(
descriptor
)是其類別提供
_ _get_ _
特殊方法的任何物件。作
為類別屬性的描述器控制該類別的實體上屬性存取與設定的語意。粗略地
說,當你存取一個實體屬性(instance attribute), Python 就會呼叫對應的
描述器上的
_ _get_ _
(如果有的話)來取得該屬性的值。舉例來說:
class Const(object): # 覆寫式描述器,參閱後面
def __init__(self, value):
self.value = value
def __set__(self, *_): # 忽略任何設定的嘗試
pass
def __get__(self, *_): # 永遠都回傳這個常數值
return self.value
class X(object):
c = Const(23)
x=X()
print(x.c) # 印出: