类型转换 [Python]

大多数程序都要处理大量类型的信息。但有时,所有操作都针对一种类型进行。例如,一个字符串与另一个字符串相加(连接)所生成的还是一个字符串。但是,经常都需要将一种类型的数据转换或强制(coerce)为另一种类型。这可能发生在赋值和计算过程中。解析器知道怎么在内建类型之间执行特定的转换。程序员可调用恰当的Python函数,比如int或float,实现内建类型之间的强制转换。

但用户自定义类又该怎么办呢?解析器不知道怎么在用户定义类和内建类型之间转换。为此,程序员必须采用特殊的方法来覆盖相应的Python函数,从而指定此类转换应如何进行。例如,类可定义特殊方法__int__,令其对int(anObject)调用的行为进行重载,从而返回对象的一个整数表示。

强制(转换)方法
方法
说明
__coerce__
将两个值转换成相同类型
__complex__
将对象转换成复数类型
__float__
将对象转换成浮点数类型
__hex__
将对象转换成十六进制字符串类型  
__int__
将对象转换成整数类型  
__long__
将对象转换成长整数类型  
__oct__
将对象转换成八进制字符串类型  
__str__
将对象转换成字符串类型