鱼C论坛

 找回密码
 立即注册
查看: 1407|回复: 11

[已解决]为什么数字1没有__aad__方法

[复制链接]
发表于 2022-5-9 15:37:10 From FishC Mobile | 显示全部楼层 |阅读模式

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

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

x
数字1赋值给变量,此变量有__add__方法,那么数字1为什么没有__add__方法呢。
最佳答案
2022-5-9 16:14:46


数值类型的都有 __add__ 等方法,像 1 就是 int 型,使用的就是 int 中的 __add__ 方法

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-9 16:14:46 | 显示全部楼层    本楼为最佳答案   


数值类型的都有 __add__ 等方法,像 1 就是 int 型,使用的就是 int 中的 __add__ 方法

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
落叶L + 5 + 5 + 3 无条件支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-9 16:38:58 From FishC Mobile | 显示全部楼层
1不是一个对象,对象才有方法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-9 16:41:15 From FishC Mobile | 显示全部楼层
你怎么会觉得1没有add方法呢
Python 3.6.6 (qpyc:3.6.6, Jul 26 2018, 03:54:22) [BUILD WITH QPY3-TOOLCHAIN (https://github.com/qpython-android) ] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> dir(1)
['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__gt__', '__hash__', '__index__', '__init__', '__init_subclass__', '__int__', '__invert__', '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes']
>>>

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
落叶L + 5 + 5 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-5-9 16:48:11 From FishC Mobile | 显示全部楼层
hrpzcf 发表于 2022-5-9 16:41
你怎么会觉得1没有add方法呢

好吧1也是一个对象
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-9 19:47:53 | 显示全部楼层
wp231957 发表于 2022-5-9 16:48
好吧1也是一个对象

python里面啥都是对象
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-9 23:22:09 | 显示全部楼层
当你在控制台中输入help(1)时,你会发现1是由int类实例化出来的对象,当然具有__add__()方法
class int(object)
 |  int([x]) -> integer
 |  int(x, base=10) -> integer
 |
 |  Convert a number or string to an integer, or return 0 if no arguments
 |  are given.  If x is a number, return x.__int__().  For floating point
 |  numbers, this truncates towards zero.
 |
 |  If x is not a number or if base is given, then x must be a string,
 |  bytes, or bytearray instance representing an integer literal in the
 |  given base.  The literal can be preceded by '+' or '-' and be surrounded
 |  by whitespace.  The base defaults to 10.  Valid bases are 0 and 2-36.
 |  Base 0 means to interpret the base from the string as an integer literal.
 |  >>> int('0b100', base=0)
 |  4
 |
 |  Methods defined here:
 |
 |  __abs__(self, /)
 |      abs(self)
 |
 |  __add__(self, value, /)
 |      Return self+value.

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
落叶L + 5 + 5 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-18 20:39:51 From FishC Mobile | 显示全部楼层
hrpzcf 发表于 2022-5-9 16:41
你怎么会觉得1没有add方法呢

因为1+a不是触发1的__add__而是触发a的__radd__,求解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-18 20:49:17 From FishC Mobile | 显示全部楼层
本帖最后由 落叶L 于 2022-5-18 21:04 编辑

小甲鱼说+左边的没有__add__,才会触发右边的__radd__。为什么1+有__radd__的对象不是触发1的__add__而是触发右边对象的__radd__。所以我推测1没有__add__。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-18 20:50:11 From FishC Mobile | 显示全部楼层
本帖最后由 落叶L 于 2022-5-18 21:05 编辑
hrpzcf 发表于 2022-5-9 16:41
你怎么会觉得1没有add方法呢


小甲鱼说+左边的没有__add__,才会触发右边的__radd__。为什么1+有__radd__的对象不是触发1的__add__而是触发右边对象的__radd__。所以我推测1没有__add__。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-18 20:53:37 From FishC Mobile | 显示全部楼层
hrpzcf 发表于 2022-5-9 16:41
你怎么会觉得1没有add方法呢

小甲鱼说+左边的没有__add__,才会触发右边的__radd__。为什么1+有__radd__的对象不是触发1的__add__而是触发右边对象的__radd__。所以我推测1没有__add__。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-18 20:54:57 From FishC Mobile | 显示全部楼层
小甲鱼说+左边的没有__add__,才会触发右边的__radd__。为什么1+有__radd__的对象不是触发1的__add__而是触发右边对象的__radd__。所以我推测1没有__add__。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-18 05:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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