# -*- coding: utf-8 -*- class A: # 二項算術演算 def __add__(self, i): return 10 + i def __sub__(self, i): return 10 - i def __mul__(self, i): return 10 * i def __div__(self, i): return 10 / i def __truediv__(self, i): return 10 / i def __floordiv__(self, i): return 10 // i def __mod__(self, i): return 10 % i def __divmod__(self, i): return (10 / i, 10 % i) def __pow__(self, i): return 10 ** i def __lshift__(self, i): return 10 << i def __rshift__(self, i): return 10 >> i def __and__(self, i): return 10 & i def __xor__(self, i): return 10 ^ i def __or__(self, i): return 10 | i # 単項算術演算 def __neg__(self): return -10 def __pos__(self): return +10 def __abs__(self): return abs(10) def __invert__(self): return ~10 # 比較演算 def __lt__(self, i): return 10 < i def __le__(self, i): return 10 <= i def __eq__(self, i): return 10 == i def __ne__(self, i): return 10 != i def __gt__(self, i): return 10 > i def __ge__(self, i): return 10 >= i a = A() print a + 2 print -a print a < 4 # 2 + a # 逆を出来るようにするには r をつけた特殊メソッドを定義する # __radd__, __rsub__, __rmul__, __rdiv__, __rtruediv__ # __rfloordiv__, __rmod__, __rdivmod__, __rpow__, __rlshift__ # __rrshift__, __rand__, __rxor__, __ror__ # a += 2 # += などを出来るようにするには i をつけた特殊メソッドを定義する # __iadd__, __isub__, __imul__, __idiv__, __itruediv__ # __ifloordiv__, __imod__, __ipow__, __ilshift__ # __irshift__, __iand__, __ixor__, __ior__
詳細はドキュメントで
0 件のコメント:
コメントを投稿