python笔记
运算符重载
python的运算符用于内置类,但是相同的运算符对不同类型有不同的行为,python中的这一功能允许同一运算符根据上下文具有不同的语义,称为运算符过载。
Python中的特殊函数
以双下划线__开头的类函数在Python中称为特殊函数。每次我们创建该类的新对象时都会调用它。Python中有很多特殊函数。
在类中定义 __str()__方法,可以控制他的打印输出方式。
1 | class Point: |
try:
1 | >>> p1 = Point(2,3) |
重载 +(实现 __add__()函数)
1 | class Point: |
try:
1 | >>> p1 = Point(2,3) |
python运算符重载的特殊函数
| 运算符 | 表达 | 在内部 |
|---|---|---|
| 相加(+) | p1 + p2 | p1 .__ add __(p2) |
| 相减(-) | p1-p2 | p1 .__ sub __(p2) |
| 相乘(*) | p1 * p2 | p1 .__ mul __(p2) |
| 求幂(**) | p1 ** p2 | p1 .__ pow __(p2) |
| 相除(/) | p1 / p2 | p1 .__ truediv __(p2) |
| 整除(//) | p1 // p2 | p1 .__ floordiv __(p2) |
| 求模 (%) | p1%p2 | p1 .__ mod __(p2) |
| 按位左移(<<) | p1 << p2 | p1 .__ lshift __(p2) |
| 按位右移(>>) | p1 >> p2 | p1 .__ rshift __(p2) |
| 按位与(and) | p1 and p2 | p1 .__ and __(p2) |
| 按位或(or) | p1 | 2 | p1 .__ or __(p2) |
| 按位异或(^) | p1 ^ p2 | p1 .__ xor __(p2) |
| 按位否(~) | 〜p1 | p1 .__ invert __() |
比较运算符重载
| 操作符 | 表达式 | 内部 |
|---|---|---|
| 小于(<) | p1 <p2 | p1 .__ lt __(p2) |
| 小于等于(<=) | p1 <= p2 | p1 .__ le __(p2) |
| 等于(==) | p1 == p2 | p1 .__ eq __(p2) |
| 不等于(!=) | p1!= p2 | p1 .__ ne __(p2) |
| 大于(>) | p1> p2 | p1 .__ gt __(p2) |
| 大于等于(>=) | p1> = p2 | p1 .__ ge __(p2) |