Python 運算子的自訂
Python Operator
參考資料:
https://docs.python.org/3/library/operator.html
在 object 中,使用 Operator functions 可以定義或重新定義使用運算子的行為。
例如:
class A: def __init__(self): self.c = 10 def __add__(self, b): return self.c+b a = A() print(a+20) #回傳 30
因此可應用為:
class Point: def __init__(self, x=0., y=0.): self.x = x self.y = y def __add__(self, b): return Point(self.x+b.x, self.y+b.y)
兩點相加即為兩者 x 與 y 座標總和。
一些可迭代物件的運算子對應如下:
def __add__(a, b): return a+b def __sub__(a, b): return a-b def __mul__(a, b): return a*b def __truediv__(a, b): return a/b def __mod__(a, b): return a%b def __pow__(a, b): return a**b def __invert__(obj): return ~obj def __pos__(obj): return +obj def __neg__(obj): return -obj def __eq__(a, b): return a==b def __ne__(a, b): return a!=b def __contains__(a, b): return a in b def __getitem__(a, b): return a[b]
Comments
comments powered by Disqus