在
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...