2016-08-27 33 views
1

我只是想了解整数对象的方法调用行为。整数对象的Python调用方法

我不能直接在整数上调用__add__方法。

5.__add__(5) 

这给了我:SyntaxError: invalid syntax

但是,这样做num = 5和呼叫num.__add__(5)工作正常。

如何为整数对象分配名称会产生差异?

+2

这是因为'5.'可能会被解析器与浮点数混淆,请改用'(5).__ add __(5)'或'5 .__ add __( 5)'。 – Delgan

+0

因为然后num = 5成为Integer类的一个实例,python调用magic类的方法'__add__',否则python不知道它是5还是5.0 –

回答

1

它只是语法。解析器读取:

  • "5." - >浮法:)
  • "__add__" - >为什么?我不明白:(