今天的我更强了 发表于 2020-6-14 20:59:16

魔法方块课后题

def __init__(self,arg=''):
      if isinstance(arg,str):
            self.total=0
            for each in arg:
                self.total+=each
            else:
                print('参数错误')
      def __add__(self,other):
            return self.total+other.total
这个类对象我不知道自己理解的对不对,所以想请大神指点。
def __init__(self,arg=''):
      if isinstance(arg,str):
            self.total=0
            for each in arg:
                self.total+=each
            else:
                print('参数错误')
这里的self后后面add里的self作用是不是不一样啊?在输入a=Nstr('FishC')和b=Nstr('love')之后分别运行init方法,然后出现a+b之后,在分别复制给self和other运行add方法吗?感觉理解的很奇怪

老八秘制 发表于 2020-6-14 21:02:09

魔法方块(指命令方块)

Twilight6 发表于 2020-6-14 22:10:33



代码发个完整的吧,你这代码缩进都有点错误了

话说 add 是魔法方法,是 加法时候自动调用,而这的self算是参数,而且类中self是代表实例对象,这扯不上关系呀

_荟桐_ 发表于 2020-6-14 23:52:58

老八秘制 发表于 2020-6-14 21:02
魔法方块(指命令方块)

哈哈哈,指令方块{:10_250:}

今天的我更强了 发表于 2020-6-15 10:15:04

Twilight6 发表于 2020-6-14 22:10
代码发个完整的吧,你这代码缩进都有点错误了

话说 add 是魔法方法,是 加法时候自动调用,而这的se ...

def __init__(self,arg=''):
      if isinstance(arg,str):
            self.total=0
            for each in arg:
                self.total+=each
            else:
                print('参数错误')
def __add__(self,other):
    return self.total+other.total

缩进确实有错误,其余的代码就是把减乘除加上了 没别的

Twilight6 发表于 2020-6-15 10:26:48

今天的我更强了 发表于 2020-6-15 10:15
def __init__(self,arg=''):
      if isinstance(arg,str):
            self.total=0


你重新描述下你的问题吧,感觉看不懂你上面描述的问题...因为 __add__ 和 self 扯不上

今天的我更强了 发表于 2020-6-15 11:16:54

Twilight6 发表于 2020-6-15 10:26
你重新描述下你的问题吧,感觉看不懂你上面描述的问题...因为 __add__ 和 self 扯不上

就是说 __init__方法中的self 和__add__方法中的self 是不是作用不同?

Twilight6 发表于 2020-6-15 11:26:06

今天的我更强了 发表于 2020-6-15 11:16
就是说 __init__方法中的self 和__add__方法中的self 是不是作用不同?

self 是相同含义,都是指自己的实例化对象

单独对 add 而已 举个简单例子,假设已经实例化为a了:

a + b
这里的 a 就代表 selfb 代表 other
页: [1]
查看完整版本: 魔法方块课后题