鱼C论坛

 找回密码
 立即注册
查看: 977|回复: 8

[已解决]萌新提问。

[复制链接]
发表于 2018-8-20 19:06:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我把小甲鱼《零基础入门学习Python》第42节中小甲鱼作为举例写下来的代码跟着自己写了一遍。
[img]C:\Users\Administrator\Desktop\新建文件夹 (4)\GIPII2@SL2(LN%QP_5@8QRA.png[/img]
以上是视频中的代码及计算结果。
C:\Users\Administrator\Desktop\新建文件夹 (4)\H6V6O50@LJ04K(CUK3HO89T.png
这个是我运行的代码及计算结果。
两者的代码计算结果不一样,甚至还报错。我看了几遍没发现这两个代码有什么不一样,唯一不一样的是小甲鱼视频中的python是3.4.1版本,我用的是3.7.0版本。

第二个问题,C:\Users\Administrator\Desktop\新建文件夹 (4)\JF`KYWLNO3QWG3Q_AGM{)D9.png
这个还是用的我刚才的代码计算出的结果,为什么 a是3,b是5,a-b会得到8的结果,这是怎么成立的?


最佳答案
2018-8-20 19:13:16
你拼错了,,other,多看错误提示
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-8-20 19:46:23 | 显示全部楼层
塔利班 发表于 2018-8-20 19:24
def __add__(self,other):
                return int.__sub__(self,ohter)
你重写了加法操作,变成了 ...

哦哦  意思是用“+”调用 __add__ 函数 , 用“-”调用__sub__  我好像才搞懂这段代码的意思。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-20 19:24:36 | 显示全部楼层
sccccc 发表于 2018-8-20 19:19
惊了 原来是这样。  还有个问题。 我输入a它返回一个3。输入b它返回一个5。 然后a+b返回-2,这是怎么成立 ...

def __add__(self,other):
                return int.__sub__(self,ohter)
你重写了加法操作,变成了减法

add 加 sub 减
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-20 19:19:53 | 显示全部楼层
塔利班 发表于 2018-8-20 19:13
你拼错了,,other,多看错误提示

惊了 原来是这样。  还有个问题。 我输入a它返回一个3。输入b它返回一个5。 然后a+b返回-2,这是怎么成立的?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-20 19:13:16 | 显示全部楼层    本楼为最佳答案   
你拼错了,,other,多看错误提示
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-20 19:11:51 | 显示全部楼层
我看了几遍没发现这两个代码有什么不一样,唯一不一样的是小甲鱼视频中的python是3.4.1版本,我用的是3.7.0版本。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-20 19:10:34 | 显示全部楼层
上面是视频中的结果。

>>> class New_int(int):
           def __add__(self,other):
                return int.__sub__(self,ohter)
           def __sub__(self,other):
                return int.__add__(self,other)

       
>>> a = New_int(3)
>>> b = New_int(5)
>>> a + b
Traceback (most recent call last):
  File "<pyshell#22>", line 1, in <module>
    a + b
  File "<pyshell#19>", line 3, in __add__
    return int.__sub__(self,ohter)
NameError: name 'ohter' is not defined
>>> a - b
8

这是我得到的结果
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-20 19:09:07 | 显示全部楼层
>>> class New_int(int):
            def __add__(self,other):
                return int.__sub__(self,ohter)
            def __sub__(self,other):
                return int.__add__(self,other)

>>>a = New_int(3)
>>>b = New_int(5)
>>>a + b
-2
>>>a - b
8
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-20 19:07:04 | 显示全部楼层
图片没上传成功。我放下面
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-31 07:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表