小能豆

为什么 1.__add__(1) 会产生语法错误?

py

1.__add__(1)

收益SyntaxError: invalid syntax?额外的括号增加了什么?

(1).__add__(1)

阅读 8

收藏
2024-11-11

共1个答案

小能豆

由于 Python 解析表达式的方式,代码1.__add__(1)结果为。被解释为浮点文字的开头(例如)。当解释器在 之后立即遇到属性时,它不会将其理解为方法调用,而是期望浮点文字的延续(如),从而导致语法无效。SyntaxError``1.``1.0``__add__``1.``1.23

1为了避免这种歧义,在“—as in —”两边添加括号(1).__add__(1),向解释器说明这1是一个整数对象,并且__add__是对该整数的方法调用。括号明确表示这1是一个独特的整数文字,而不是浮点数的一部分。

总之:

  • 1.__add__(1)失败,因为 Python 要求在1.浮点数之后有更多数字。
  • (1).__add__(1)通过创建1一个独立的整数来成功,让您__add__直接调用。
2024-11-11