1. 程式人生 > >內建函式---特定算術的運算__add__、__radd__、__iadd__等

內建函式---特定算術的運算__add__、__radd__、__iadd__等

內建函式

  • 構造和析構

    __init__ 、 __del__
    
  • 屬性操作

__getattr_  _setattr__   _delattr__
  • 支援字典操作

    __getitem_  _setitem__   _delitem__
    
  • 像函式一樣

__call__
  • 列印輸出
__str __
  • 物件的字串表示
 ###    __str__ 列印輸出

class Person:
    def __init__(self,name,age):
        self.
name = name self.age = age #print/str都會觸發該方法 def __str__(self): print('*****8') return "姓名:{},年齡:{}".format(self.name,self.age) #通常用來返回物件的字串表示形式 #呼叫repr方法時自動觸發 def __repr__(self): return 'Person("{}",{})'.format(self.name,self.age) p = Person(
'xiaoming',20) # print(p) # s = str(p) # print(p) r = repr(p) print(r,type(r))## <class 'str'> #執行有效的PYthon字串 r2 = eval(r) print(r2,type(r2))#<class '__main__.Person'>
  • 特定算術運算子重
class  Num:
    def  __init__(self,math):
        self.math = math
    def __str__(self):
        return
str(self.math) ## 物件出現在 + 號的左邊 def __add__(self, other): return self.math +other ## 物件出現在 + 號的右邊 def __radd__(self, other): return self.math +other #+=運算時自動觸發,若沒有用add def __iadd__(self, other): return Num(self.math + other) n = Num(12) # ret = n +10 # ret = 10 + n n += 50 print(n)
  • 自行測試

    加法:__add__  __radd__   __iadd__
    減法:__sub__  __rsub__   __isub__
    乘法:__mul__  __rmul__    __imul__
    除法:__truediv__   __rtruediv__  __itruediv__
    求餘:__mod__  __rmod__  __imod__
    
  • 關係運算

    class Num:
        def __init__(self,a):
            self.a = a
            ##大於
        def  __gt__(self, other):
            return  self.a > other
        #小於
        def   __lt__(self, other):
            return   self.a < other
        #等於 ,  == 會觸發,不實現__ne__,!=也會觸發該方法
        def  __eq__(self, other):
            return   self.a  == other
        #大於等於
        def   __ge__(self, other):
            return self.a >= other
        #小於等於
        def  __le__(self, other):
            return   self.a  <= other
        #不等於:  !=
        def  __ne__(self, other):
            return   self.a != other
    n = Num(20)
    print(n > 10)
    print(n < 10)
    print(n == 10)