zoukankan      html  css  js  c++  java
  • python类与对象各个算数运算魔法方法总结

    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)

  • 相关阅读:
    小白如何在Windows下使用Redis
    OAuth2.0实例说明
    关于EntityFramework 更新数据记录时字段全部更新问题和不从数据库中获取直接更新记录
    Asp.net Controller中View 和Action方法认证Authorize 及对AuthorizeAttribute扩展
    MidpointRounding 枚举值简要说明
    JavaScript 去空格方法(转部份)
    脏读,不可重复读,幻读 (转)
    20111204 15:36 JAVA实现位向量给无重复元素的整数数组排序
    JAVA String
    CSS样式表的优先级别
  • 原文地址:https://www.cnblogs.com/Yanjy-OnlyOne/p/10068828.html
Copyright © 2011-2022 走看看