python - Python __add__ 带有整数的魔术方法
问题描述
当我正在尝试这个时:
>>> "a".__add__("b")
'ab'
这是工作。但是这个
>>> 1.__add__(2)
SyntaxError: invalid syntax
不管用。这是有效的:
>>> 1 .__add__(2) # notice that space after 1
3
这是怎么回事?是关于变量命名规则吗?当我不使用空间时,python 是否认为我正在尝试创建变量?
解决方案
Python 解析器故意保持简单和简单。当它看到 时1.
,它认为您正处于浮点数的中间,并且1._
不是有效数字(或者更准确地说,1.
是有效的浮点数,并且您不能通过_
:跟随值"a" __add__("b")
也是错误的)。因此,任何明确表示.
不是数字的一部分的内容都会有所帮助:在点之前有一个空格,正如您所发现的(因为在数字中找不到空格,Python 放弃了浮点数的概念并采用了整数语法)。括号也有帮助:(1).__add__(2)
. 添加另一个点也可以:(1..__add__(2)
这里1.
是一个有效数字,然后.__add__
做通常的事情)。
推荐阅读
- javascript - 模板组件从数组中移除时不会重新渲染
- powershell - 运行文件夹中的所有 .exe
- node.js - MongoError:doc参数必须是一个对象
- javascript - NodeJS 和 MongoDB 中的多个查询
- python - 在 pip install 上出现无效的语法错误
- mongodb - 由于创建 mongoTemplate bean 错误,Spring boot + mongo Heroku 部署失败
- kubernetes - 使用 AGE 的标签列出 kubernetes pvc
- html - 为什么css不能设置样式带有元素的元素使用css控制图像的大小?
- java - 以编程方式使用 JaCoCo API
- vb.net - 形式光标不变