Skip to content

Commit caa3397

Browse files
committed
p3
1 parent 9e10dc5 commit caa3397

File tree

1 file changed

+24
-32
lines changed

1 file changed

+24
-32
lines changed

239.md

Lines changed: 24 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -205,40 +205,26 @@
205205

206206
较之以前,增加了一个特殊方法`__add__()`,它就是实现相加的特殊方法。在类中,有规定了加减乘除等运算的特殊方法。
207207

208-
在Python中,如果要实现某种运算,必须要有运算符,这是毫无疑问已经很熟悉的了。但是,这些运算符之所以能够被使用,都是因为有一些特殊方法才得以实现的。
208+
在Python中,如果要实现某种运算,必须要有运算符,这是毫无疑问已经很熟悉的了。但是,这些运算符之所以能够被使用,都是因为有一些特殊方法才得以实现的。以下表格中列出几种常见运算符所对应的特殊方法,供参考。
209209

210210
|二元运算符 | 特殊方法|
211211
|---------------------|-------------------|
212-
| + | __add__,__radd__ |
213-
| - | __sub__,__rsub__ |
214-
| * | __mul__,__rmul__ |
215-
| / | __div__,__rdiv__,__truediv__,__rtruediv__ |
216-
| // | __floordiv__,__rfloordiv__ |
217-
| % | __mod__,__rmod__ |
218-
| ** | __pow__,__rpow__ |
219-
| << | __lshift__,__rlshift__ |
220-
| >> | __rshift__,__rrshift__ |
221-
| & | __and__,__rand__ |
222-
| ^ | __xor__,__rxor__ |
223-
| | | __or__,__ror__ |
224-
| += | __iaddr__ |
225-
| -= | __isub__ |
226-
| *= | __imul__ |
227-
| /= | __idiv__,__itruediv__ |
228-
| //= | __ifloordiv__ |
229-
| %= | __imod__ |
230-
| **= | __ipow__ |
231-
| <<= | __ilshift__ |
232-
| >>= | __irshift__ |
233-
| &= | __iand__ |
234-
| ^= | __ixor__ |
235-
| |= | __ior__ |
236-
| == | __eq__ |
237-
| !=,<> | __ne__ |
238-
| > | __get__ |
239-
| < | __lt__ |
240-
| >= | __ge__ |
241-
| <= | __le__ |
212+
| + | `__add__`, `__radd__` |
213+
| - | `__sub__`, `__rsub__` |
214+
| * | `__mul__` , `__rmul__` |
215+
| / | `__div__` , `__rdiv__`, `__truediv__`, `__rtruediv__` |
216+
| // | `__floordiv__`, `__rfloordiv__` |
217+
| % | `__mod__`, `__rmod__` |
218+
| ** | `__pow__`, `__rpow__` |
219+
| << | `__lshift__`, `__rlshift__` |
220+
| >> | ` __rshift__`, `__rrshift__` |
221+
| & | `__and__`, `__rand__` |
222+
| == | `__eq__` |
223+
| !=,<> | `__ne__` |
224+
| > | `__get__` |
225+
| < | `__lt__` |
226+
| >= | `__ge__` |
227+
| <= | `__le__` |
242228

243229
以“+”为例,不论是实现`1 + 2`还是`'abc' + 'xyz'`,都是要执行`1.__add__(2)`或者`'abc'.__add__('xyz')`操作。也就是两个对象是否能进行加法运算,首先就要看相应的对象是否有`__add__()`方法(读者不妨在交互模式中使用`dir()`,看一看整数、字符串是否有`__add__()`方法),一旦相应的对象有__add__()方法,即使这个对象从数学上不可加,我们都可以用加法的形式,来表达`obj.__add__()`所定义的操作。在Python中,运算符起到简化书写的功能,但它依靠特殊方法实现。
244230

@@ -260,4 +246,10 @@
260246
>>> print a + b #Python 3: print(a + b)
261247
1/2
262248

263-
Python的魅力之一,就是它强大的标准库和第三方库,让你省心省力。
249+
Python的魅力之一,就是它强大的标准库和第三方库,让你省心省力。
250+
251+
------
252+
253+
[总目录](./index.md)&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;[上节:多态和封装](./211.md)&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;[下节:特殊方法(1)](./212.md)
254+
255+
如果你认为有必要打赏我,请通过支付宝:**qiwsir@126.com**,不胜感激。

0 commit comments

Comments
 (0)