鱼C论坛

 找回密码
 立即注册
查看: 2549|回复: 18

[已解决]python魔法方法的调用

[复制链接]
回帖奖励 6 鱼币 回复本帖可获得 1 鱼币奖励! 每人限 1 次(中奖概率 30%)
发表于 2017-3-6 19:30:42 | 显示全部楼层 |阅读模式

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

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

x
如图一中,返回值是int.__sub__,int.__add__;
图二,返回值是self.__replace__( );
魔法方法前的int,self的含义?为什么这么写?

最佳答案
2017-3-8 16:04:41
很好理解~
1,括号内int指这个类继承于int类型,你可以理解成类似平时用的class B(A)这样的一般继承关系,目的是引用返回int中自带的魔法方法
2,self,指的是实例属性,简单理解就是如果一个方法是可以让实例对象进行引用的,那这个方法里面就必须要有self
1.png
2.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-3-6 20:14:04 From FishC Mobile | 显示全部楼层
这个例子中,self是指New_int对象,int就是int对象,Python处处是对象
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-6 21:34:48 | 显示全部楼层
此处定义的类New_int是继承基类int,而int.__sub__,int.__add__是调用父类未绑定的方法,以实现父类中定义的方法,python中类的方法都要有self参数,replace是字符串方法,self.replace()是使得在类的实例化对象调用方法四实现字符串替换的操作!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-6 23:08:20 | 显示全部楼层
魔法方法好难理解,我也是学到42课,我要跳过魔法方法直接学50课了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2017-3-8 07:18:25 | 显示全部楼层

回帖奖励 +1 鱼币

提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-8 12:39:43 | 显示全部楼层
2131479626 发表于 2017-3-8 07:18
我记得论坛里有这个问题的答案,你搜索一下吧

搜什么内容合适
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-8 15:33:43 | 显示全部楼层
  1. 图1中的  int.__sub__(self,other)是调用父类(也就是BIF函数int)的__sub__方法,
  2. 而这个的方法的作用就是减法。
  3. 例如:
  4. [In] int(6).__sub__(3)
  5. [Out] 3
  6. 另一行也就是同理了。
复制代码


self就是绑定,绑定在实例化对象上面,使得执行的语句是对实例化对象的操作。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-8 15:38:47 | 显示全部楼层

回帖奖励 +1 鱼币

其实魔法方法这个有点抽象化,但是记住一点,python中一切都要实例化了才能用,所以为什么每个魔法方法都要带self就是将实例化的对象绑定进来。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-8 16:04:41 | 显示全部楼层    本楼为最佳答案   
很好理解~
1,括号内int指这个类继承于int类型,你可以理解成类似平时用的class B(A)这样的一般继承关系,目的是引用返回int中自带的魔法方法
2,self,指的是实例属性,简单理解就是如果一个方法是可以让实例对象进行引用的,那这个方法里面就必须要有self
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-19 15:27:50 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-9-19 15:28:23 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-9-19 15:28:55 | 显示全部楼层

回帖奖励 +1 鱼币

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-9-19 16:44:21 | 显示全部楼层
学习
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-9-19 16:44:58 | 显示全部楼层
没中到鱼币,,
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-19 20:04:00 | 显示全部楼层
...
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-9-19 20:04:43 | 显示全部楼层
...
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-9-19 20:05:15 | 显示全部楼层
...
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-9-19 20:07:01 | 显示全部楼层
学习
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2018-9-21 13:22:35 | 显示全部楼层

回帖奖励 +1 鱼币

提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-25 20:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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