Python 運算子過載

2021-06-22 10:22:29 字數 1685 閱讀 9325

python

中is、

==是兩個運算子,對物件進行比較,分別對id,

type

,value

進行比較。

"is"

比較id

,type

,value三維

,而"=="僅

比較value。

實驗發現其實is,

==僅僅是比較一些簡單的基礎變數。

class test(object):

def __init__(self):

self.value='test'

測試**:

if __name__ == '__main__':

u1=test()

u2=test()

if u1 is u2:

print 'is',true

else:

print 'is',false

if u1 == u2:

print '==',true

else:

print '==',false

結果如下:step 2:過載「==」運算子:

def __eq__(self,y):

if self.value ==y.value:

return true

else:

return false

測試結果如下:小結:python

中可以過載的運算子如下:

method

overloads

call for

__init__

建構函式

x=class()

__del__

析構函式   

物件銷毀

__add__

+x+y,x+=y

__or__

|x|y,x|=y

__repr__

列印轉換

print x

,repr(x)

__str__

列印轉換   

print x

,str(x)

__call__

呼叫函式

x()

__getattr_

限制   

x.undefine

__setattr__

取值   

x.any=value

__getitem__

索引   

x[key],

__len__

長度   

len(x)

__cmp__

比較   

x==y,x

__lt__

小於   x

__eq__

等於   

x=y

__radd__

right-side +        +x

__iadd__

+=               

x+=y

__iter__

迭代for in  

Python運算子過載

print 呼叫父類建構函式 def parentmethod self print 呼叫父類方法 def setattr self,attr self.parentattr attr def getattr self print 父類屬性 self.parentattr def del self ...

python 運算子過載

運算子過載就是讓用類寫成的物件,可截獲並響應用在內建型別上的運算 加法,切片,列印和點號運算等 1.以雙下劃線命名的方法 x 的特殊鉤子,python運算子過載的實現是提供特殊命名的方法來攔截運算,python替每種運算和特殊命名的方法之間,定義了固定不變的對映關係 2.當例項出現在內建運算時,這類...

python運算子過載

python的運算子過載可以算是語言的一大特色了。相比c python進行運算子過載將會方便許多,只需要重寫以 開頭和結尾的特殊方法即可,下面看乙個簡單的例子 迭代器 class indexer object value 1 加法運算過載 def add self,value return self...