1、python类与对象各个算术运算魔法方法总结:

2、各个魔法方法应用举例:

3、实例训练:

(1)我们都知道在 Python 中,两个字符串相加会自动拼接字符串,但遗憾的是两个字符串相减却抛出异常。因此,现在我们要求定义一个 Nstr 类,支持字符串的相减操作:A – B,从 A 中去除所有 B 的子字符串。

class Nstr(str):

def __sub__(self,other):

 self=list(self)

        other=list(other)

for i in other:

c=len(self)

while(c>0):

 if i in self:

                    self.remove(i)

c=c-1

x=""

        for j in range(len(self)):

            x=x+self[j]

        return x

a = Nstr('I love iiiiii FishC.com!iiiiiiii')

b = Nstr('i')

print(a-b)

(2)定义一个类 Nstr,当该类的实例对象间发生的加、减、乘、除运算时,将该对象的所有字符串的 ASCII 码之和进行计算:

class Nstr(str):

def __add__(self,other):

y=0

        z=0

        for i in self:

            x=ord(i)

            y=y+x

        for j in other:

            q=ord(j)

            z=z+q

        return int(y)+int(z)

def __sub__(self,other):

y=0

z=0

for i in self:

x=ord(i)

y=y+x

for j in other:

q=ord(j)

z=z+q

return int(y)-int(z)

  def __mul__(self,other):

y=0

z=0

for i in self:

x=ord(i)

y=y+x

for j in other:

q=ord(j)

z=z+q

return int(y)*int(z)

def __truediv__(self,other):

y=0

z=0

for i in self:

x=ord(i)

y=y+x

for j in other:

q=ord(j)

z=z+q

return int(y)/int(z)

  def __floordiv__(self,other):

y=0

z=0

for i in self:

x=ord(i)

y=y+x

for j in other:

q=ord(j)

z=z+q

return int(y)//int(z)

最新文章

  1. 3 django系列之Form表单在前端web界面渲染与入库保存
  2. weave 建立跨节点docker网络
  3. freeCodeCamp:Falsy Bouncer
  4. 来自 Codrops 的7种创新的拖放交互界面
  5. Codeforces Round #366 Div.2[11110]
  6. Linq to EF 与Linq to Object 使用心得
  7. Js计算-当月每周有多少天
  8. WPF ListView的使用及Linq to XML练习
  9. iOS项目管理:目录结构和开发流程
  10. .Net_用控制台程序打印指定行数的三角型(面试题)
  11. mongodb数据到MySQL数据库 的迁移步骤
  12. WPF备忘录(3)如何从 Datagrid 中获得单元格的内容与 使用值转换器进行绑定数据的转换IValueConverter
  13. centos6.5安装logwatch监控日志
  14. 新手如何正确使用CLion之输出hello world
  15. webserive学习记录3-eclipse创建webservice
  16. 撩课-Python-每天5道面试题-第1天
  17. [HNOI2003]多边形
  18. session过期后iframe页面如何跳转到parent页面
  19. HDU 6096 String (AC自动机)
  20. LA 4731 蜂窝网络

热门文章

  1. DevExpress01、独立使用的控件
  2. Apache2.2 + tomcat7 服务器集群配置
  3. java StringBuilder案例
  4. Anaconda 包管理工具 conda 进行虚拟环境管理入门
  5. linux批量远程多服务器FTP并下载文件的脚本
  6. impala jdbc驱动执行impala sql的一个坑(不支持多行sql)
  7. 1059. [ZJOI2007]矩阵游戏【二分图】
  8. leetcode 217. Contains Duplicate 287. Find the Duplicate Number 442. Find All Duplicates in an Array 448. Find All Numbers Disappeared in an Array
  9. no.random.randn
  10. iOS url出现特殊字符处理 -- stringByAddingPercentEncodingWithAllowedCharacters