鱼C论坛

 找回密码
 立即注册
查看: 2206|回复: 3

[已解决]魔法方法

[复制链接]
发表于 2016-5-21 15:32:51 | 显示全部楼层 |阅读模式
10鱼币
本帖最后由 竟无语凝噎 于 2016-5-21 15:39 编辑

为什么类自带的方法(魔法方法) def __add__(self,other):
这样的 ,里面定义的时候可以不用self ,  即 直接return self + other
而我们自己定义的方法里面 需要用到self.  加在前面 即 def add(self,x,y):    self.x = x  self.y = y   return self.x + self.y
最佳答案
2016-5-21 15:32:52
要不要加self看需求。看要不要将输入值添加为(或修改为)实例对象的一个属性值。
首先self.x = x 表示给实例对象(设对象名为 temp)增加了一个x的属性。 下面就可以直接 用temp.x 来调用x,以进行其他操作。
若直接 return x+y 那输出值相同,但是temp没有添加x这一属性.

最佳答案

查看完整内容

要不要加self看需求。看要不要将输入值添加为(或修改为)实例对象的一个属性值。 首先self.x = x 表示给实例对象(设对象名为 temp)增加了一个x的属性。 下面就可以直接 用temp.x 来调用x,以进行其他操作。 若直接 return x+y 那输出值相同,但是temp没有添加x这一属性.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-5-21 15:32:52 | 显示全部楼层    本楼为最佳答案   
要不要加self看需求。看要不要将输入值添加为(或修改为)实例对象的一个属性值。
首先self.x = x 表示给实例对象(设对象名为 temp)增加了一个x的属性。 下面就可以直接 用temp.x 来调用x,以进行其他操作。
若直接 return x+y 那输出值相同,但是temp没有添加x这一属性.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-5-22 09:03:32 | 显示全部楼层
自己顶一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-8-15 18:43:38 | 显示全部楼层
class A():
    def add (self,x,y):
        return x+y
不用加self啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 08:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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