python - 特殊方法查詢-文件1
python - 特殊方法-文件2
python的運算子實際上是通過呼叫物件的特殊方法實現
的。比如:
a =
20b =
30c = a+b
d = a.__add__(b)
print
("c="
, c)
print
("d="
, d)
class
person
:def
__init__
(self, name)
: self.name = name
def__add__
(self, other):if
isinstance
(other, person)
:return
"--"
.format
(self.name, other.name)
else
:return
"不是同類物件,不能相加"
def__mul__
(self, other):if
isinstance
(other,
int)
:return self.name*other
else
:return
"不是同類物件,不能相乘"
p1 = person(
"onspis"
)p2 = person(
"yaphets"
)x = p1 + p2 # 這裡重寫了 ,所以支援 字元 用 -- 連線 起來
print
(x)print
(p1*3)
# ipython 執行效果
in [5]
: p1 = person(
"onspis").
..: p2 = person(
"yaphets"
)in [6]
: p1
out[6]
:<__main__.person at>
>
in [7]
: p2
out[7]
:<__main__.person at>
>
in [8]
: p1+p2
out[8]
:'onspis--yaphets'
in [9]
: p1*
3out[9]
:'onspisonspisonspis'
in [10]
: p1*p2
out[10]
:'不是同類物件,不能相乘'
常見的特殊方法統計如下:
每個運算子
實際上都對應了相應的方法
,統計如下:
20201205 110 特殊方法和運算子過載
python 的運算子實際上是通過呼叫物件的特殊方法實現的。比如 a 20b 30c a b d a.add b print c print d print dir a 執行結果 常用的特殊方法統計如下 每個運算子實際上都對應了相應的方法,統計如下 可以重寫上面的特殊方法,即實現 運算子的過載 cl...
Python中常見的特殊方法 魔術方法介紹
class vector2d typecode d def init self,x,y self.x float x 私有變數 self.y float y property def x self 讀取,v1.x相同方式讀取 return self.x property def y self ret...
python中特殊方法和運算子過載
python的運算子實際上是通過呼叫物件的特殊方法實現的。a 20b 30c a b d a.add b print c c print d d 執行結果 c 50d 50常見的特殊方法統計如下 方法說明 例子 init 構造方法 物件建立 p person del 析構方法 物件 repr str...