User: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

參考文獻[编辑 | 编辑源代码]