跳至內容

用戶:Xyy23330121/Python/類的方法與其它內置函數

來自維基學院


轉換類型

[編輯 | 編輯原始碼]

轉換為字符串 / bytes

[編輯 | 編輯原始碼]

object.__repr__(self)

[編輯 | 編輯原始碼]

用於支持操作 repr(self),本方法必須返回字符串。

object.__str__(self)

[編輯 | 編輯原始碼]

用於支持操作 str(self),本方法必須返回字符串。

object.__bytes__(self)

[編輯 | 編輯原始碼]

用於支持操作 bytes(self),本方法必須返回 bytes 對象。

object.__format__(self, format_spec)

[編輯 | 編輯原始碼]

用於支持操作 format(self)str.format 也會使用此方法來生成「格式化字符表示」。

format_spec 參數為包含所需格式選項描述的字符串——這個字符串的內容以及如何解讀,是可以由此方法自定義的!在自定義的情況下,不再需要嚴格遵守格式規格迷你語言

對於字符串格式化有幫助的內容,還有 __getitem__ 方法 以及 __getattr__ 方法

轉換為內置數字類型

[編輯 | 編輯原始碼]

object.__complex__(self)

[編輯 | 編輯原始碼]

用於支持操作 complex(self)

如果未定義此方法,在使用 complex(self) 時,會嘗試使用 complex(self.__float__()) 的結果。如果未定義 float,會嘗試使用 complex(self.__index__()) 的結果。

object.__int__(self)

[編輯 | 編輯原始碼]

用於支持操作 int(self)

如果未定義此方法,在使用 int(self) 時,會嘗試使用 self.__index__() 的結果。

object.__float__(self)

[編輯 | 編輯原始碼]

用於支持操作 float(self)

如果未定義此方法,在使用 float(self) 時,會嘗試使用 float(self.__index__()) 的結果。

object.__index__(self)

[編輯 | 編輯原始碼]

應用於支持 operator 模塊中的 operator.index(self) 操作 [1]。也用於在未定義上面三個方法時,為上面對應的三種操作提供支持。此方法必須返回整數。

object.__bool__(self)

[編輯 | 編輯原始碼]

用於支持操作 bool(self)

如果一個類的 __len____bool__ 都未定義,則其所有實例在布爾運算時都會被視為 True

參考文獻

[編輯 | 編輯原始碼]