python中运算符“重载”
2017-09-13 15:11
225 查看
class Rational(object): def __init__(self, p, q): self.p = p self.q = q def __add__(self, r): return Rational(self.p * r.q + self.q * r.p, self.q * r.q) def __sub__(self, r): return Rational(self.p * r.q - self.q * r.p, self.q * r.q) def __mul__(self, r): return Rational(self.p * r.p, self.q * r.q) def __truediv__(self, r): return Rational(self.p * r.q, self.q * r.p) def __str__(self): return '%s/%s' % (self.p, self.q) __repr__ = __str__ r1 = Rational(1, 3) print(r1) r2 = Rational(7, 6) r3 = r1 + r2 print(r2) print(r3) print(r1 - r2) r3 = r1 / r2 print(r3)
这里有点像C++的运算符重载。
要注意:
https://stackoverflow.com/questions/40770632/typeerror-unsupported-operand-types-for
Python3 uses special division names:
__truediv__and
__floordiv__for
the
/and
//operators,
respectively.
相关文章推荐
- python运算符 供重载参考
- python 运算符 重载可使用
- python运算符方法重载
- python运算符 供重载参考
- python 运算符 供重载参考
- python类运算符的重载
- python 运算符 供重载参考
- python 类的运算符及重载
- Python基础 -- 01 Python的基础语法(数据类型、输入输出、运算符、数据类型转换、判断语句、循环语句)
- Python学习笔记 —— 运算符
- python学习4-python运算符
- Python基本运算符
- 「python」比较关系运算符
- 类和对象(this指针、默认成员函数及运算符的重载)
- python重载方法
- 警惕Python中重复运算符(*)的坑
- 一元运算符重载
- python运算符
- Python运算符
- 用成员函数重载算术运算符