Why doesn't 2.__add__(3) work in Python?

前端 未结 2 1217
耶瑟儿~
耶瑟儿~ 2020-11-27 08:25

The integer 2 has an __add__ method:

>>> \"__add__\" in dir(2)
True

... but calling it raises a SyntaxEr

相关标签:
2条回答
  • 2020-11-27 08:35

    2. is parsed as a float, so 2.__add__ is a SyntaxError.

    You can evaluate

    (2).__add__(3) instead.


    In [254]: (2).__add__(3)
    Out[254]: 5
    
    0 讨论(0)
  • 2020-11-27 08:45

    Another way to get around 2. being parsed as a float is to insert a space between the 2 and the .

    >>> 2 .__add__(3)
    5
    
    0 讨论(0)
提交回复
热议问题