已采纳回答 / Zobeltitz
首先调用add函数实在创建Rational类之后的,所以在调用这个函数的时候Rational已经创建完了,不会出现问题Rational()是创建一个Rational类型的对象,调用的是__init__构造方法,这个函数返回一个Rational类型的对象,这个对象是运算结果
2020-10-22
已采纳回答 / Zobeltitz
在自己自定义的类中的这两个方法继承自Object类,可能不符合自己的需求(比如说输出太难读了)。所以需要在自己的类中重写这两个方法,覆盖继承的这两个方法,执行新的功能。(在Python的内建数据类型(字符串,整型等)中应该已经重写过这个方法了)str和repr用户和开发者都可以使用,结果均打印在命令行中。区别在于这两个的函数的作用的定义,str注重用户的可读性(在某些应用里可能会输出图表之类的?),repr注重开发和调试期间的使用(课程中说:”在终端(Terminal)中直接输入变量的时候“,用户不太用直...
2020-10-20
最赞回答 / 不做实力派的型男不改昵称
你这完全搞错了,__str__是object对象的内置函数,而str()是python全局的一个内置函数,这两个不是一个函数在使用 str(a) 时等价于 a.__str__() ,即str方法会去调用对象的内置函数__str__.这里你可能会问,那为啥不写a.__str__(),而是写成str(a)。因为习惯规定双下划线的为私有级别,不建议直接调用,而且个人觉得写起来代码也不好看
2020-10-20
最赞回答 / 慕粉6398034
线上编译器的版本不是Python3.X,除法还是和2.X版本一样只能取整,所以没有__truediv__这个正常除法,只有__div__这个除法,然而这个除法如果整数和整数除只能向下取整,只有浮点数和浮点数或者浮点数和整数相除才会取小数点之后的数
2020-09-26
例子中引用循环变量返回值为函数,所以会受到循环变量变化影响,任务中将返回值进行实际赋值,后续变量产生变化不对已赋值变量产生影响,不知道这么理解对不对
2020-09-24