华南俳烁实业有限公司

python

當(dāng)前位置:中華考試網(wǎng) >> python >> python編程基礎(chǔ) >> 文章內(nèi)容

python3代碼中實(shí)現(xiàn)加法重載,你會(huì)嗎?

來(lái)源:中華考試網(wǎng)  [2020年12月3日]  【

  我們想要知道數(shù)目的總和,只要通過(guò)+就能實(shí)現(xiàn),這是我們?cè)谧鲱}上經(jīng)常用到的符號(hào)。但是在python中不能直接使用,我們需要借助一些代碼或者函數(shù)幫助我們實(shí)現(xiàn)對(duì)象的相加。那么實(shí)現(xiàn)加法需要用到什么呢?小編在這里跟大家講講操作符重載,可能有些人聽(tīng)到這個(gè)很長(zhǎng)的詞比較陌生,我們繼續(xù)往下深入學(xué)習(xí)。

  Python支持操作符重載!安僮鞣剌d”其實(shí)是個(gè)簡(jiǎn)單的概念,你是否曾經(jīng)想過(guò)為什么Python可以讓你使用“+”操作符來(lái)同時(shí)實(shí)現(xiàn)加法和連接字符串?這就是操作符重載在發(fā)揮作用。

  你可以定義使用Python標(biāo)準(zhǔn)操作符符號(hào)的對(duì)象,這可以讓你在特定的環(huán)境中使用特定的對(duì)象。

  Python 關(guān)于運(yùn)算符重載的規(guī)則:

  不能重載內(nèi)置類(lèi)型的運(yùn)算符

  不能新建,只能重載

  某些運(yùn)算符不能重載--is、and、or 和 not

  Python運(yùn)算實(shí)際上是通過(guò)調(diào)用對(duì)象的特殊方法實(shí)現(xiàn)的,比如a+b:

  a=20
b=30
c=a+b
d=a.__add__(b)
print("c:",c)
print("d:",c)

  運(yùn)算結(jié)果:

  c: 50

  d: 50

  Vector 對(duì)于乘法的重載也是類(lèi)似的:

python課程免費(fèi)試聽(tīng)預(yù)約

  • 地區(qū):
  • 姓名:
  • 手機(jī):

  def __mul__(self, scalar):

  if isinstance(scalar, numbers.Real):

  return Vector(n * scalar for n in self)

  else:

  return NotImplemented

  def __rmul__(self, scalar):

  return self * scalar

  注意這里我們值定義了向量乘以一個(gè)數(shù)的乘法。嘗試做點(diǎn)乘,矩陣乘法被分配給了@符號(hào),我們也可以做這個(gè)定義,然后來(lái)運(yùn)算

  def __matmul__(self, other):

  try:

  return sum(a * b for a, b in zip(self, other))

  except TypeError:

  return NotImplemented

  def __rmatmul__(self, other):

  return self @ other # this only works in Python 3.5

  借助操作運(yùn)算符重載我們不僅可以實(shí)現(xiàn)加法的運(yùn)算,乘法也同樣可以完成。當(dāng)然操作符重載對(duì)于我們熟知的字符串連接也起到了不小的作用,感興趣的小伙伴看完文章后也可以去試試。

  如今python編程語(yǔ)言市場(chǎng)需求大,薪資待遇上萬(wàn)盡在咫尺!如果你也想學(xué)習(xí)python技術(shù)可以填寫(xiě)下面表單,Python學(xué)習(xí)資料限時(shí)免費(fèi)領(lǐng)!

責(zé)編:fushihao

上一篇:python中怎樣判斷all函數(shù)輸出結(jié)果為true?

下一篇: 沒(méi)有了

  • 會(huì)計(jì)考試
  • 建筑工程
  • 職業(yè)資格
  • 醫(yī)藥考試
  • 外語(yǔ)考試
  • 學(xué)歷考試
安徽省| 卫辉市| 濉溪县| 巫山县| 江安县| 新津县| 化州市| 垦利县| 昌吉市| 岗巴县| 鞍山市| 凤庆县| 肃宁县| 独山县| 兰坪| 宁安市| 潜江市| 怀柔区| 萝北县| 遂川县| 靖安县| 连平县| 礼泉县| 武宣县| 汶川县| 波密县| 华安县| 密山市| 阿瓦提县| 上林县| 东海县| 措美县| 寿宁县| 安平县| 章丘市| 花莲县| 宜兴市| 成武县| 崇阳县| 枣庄市| 铁岭县|