rational類實現了有理數運算,但是,如果如何把結果轉為 int 或 float ?
考察整數和浮點數的轉換:
print(int(12.36))
==> 12
print(float(12))
==> 12.0
如果要把 rational 轉為 int,應該使用:
r = rational(12, 5)
n = int(r)
要讓int()函式正常工作,只需要實現特殊方法__int__():
class rational(object):
def __init__(self, p, q):
self.p = p
self.q = q
def __int__(self):
return self.p // self.q
print(int(rational(7, 2)))
print(int(rational(1, 3)))
結果為:
3
0
同理,要讓float()函式正常工作,只需要實現特殊方法__float__()。
任務:完善rational,使之可以轉型為float。
class rational(object):
def __init__(self, p, q):
self.p = p
self.q = q
def __int__(self):
return self.p // self.q
def __float__(self):
return float(self.p) / self.q
print(float(rational(7, 2)))
print(float(rational(1, 3)))
結果為:
3.5
0.3333333333333333
Python中的型別轉換
函式 描述 int x base 將x轉換為乙個整數 long x base 將x轉換為乙個長整數 float x 將x轉換到乙個浮點數 complex real imag 建立乙個複數 str x 將物件 x 轉換為字串 repr x 將物件 x 轉換為表示式字串 eval str 用來計算在字串...
python中的型別轉換 Python中的型別轉換
使用python,我們可以輕鬆地將資料轉換成不同的型別。型別轉換有不同的功能。我們可以將字串型別的物件轉換為數值,在不同的容器型別之間執行轉換等。在本節中,我們將看到如何使用python完成轉換。將字串轉換為數值型別 要將string型別的物件轉換為numeric物件,可以使用int float 等...
Python中的型別轉換函式
函式 描述 int x base 將x轉換為乙個整數 long x base 將x轉換為乙個長整數 float x 將x轉換到乙個浮點數 complex real imag 建立乙個複數 str x 將物件 x 轉換為字串 repr x 將物件 x 轉換為表示式字串 eval str 用來計算在字串...