home changes contents help options

245:オブジェクトを数値に変換する

整数に変換する

int を使います。整数に変換できるオブジェクト、もしくは整数とみなせる文字列ならば整数に変換できます。変換できなかった場合 TypeError? が送出されます。

>>> int(1.0)
1
>>> int('2')
2

小数に変換する

float を使います。こちらも小数に変換できるオブジェクト、もしくは小数とみなせる文字列ならば整数に変換できます。変換できなかった場合 TypeError? が送出されます。

>>> float(1)
1.0
>>> float('2.0')
2.0

自作クラスを数値に変換できるようにしておく

自作クラスを int, float, complex に渡したとき、動作するようにするには __int__, __float__, __complex__ メソッドを定義します。適切な型の値を返すようにしてください。

>>> class Rational(object):
...   def __init__(self, a, b=1):
...     self.a = a
...     self.b = b
...   def __float__(self):
...     return float(self.a) / float(self.b)
...
>>> x = Rational(1, 2)
>>> float(x)
0.5