为什么input('str'+ int)不起作用,而print(int +'str')不起作用?

时间:2020-04-29 22:13:17

标签: python python-3.x typeerror python-2.x

为什么input('str'+ int)不起作用,而print(int +'str')不起作用

我用过 x =(“ enter” + t +“ th value”)'''在此键入(t)= int'''

它奏效了, 但, 我使用印刷(230 +“ k $”) 并且显示Type-error:+不支持的操作数类型:'int'和'str'

为什么前一行代码有效/

1 个答案:

答案 0 :(得分:1)

这里的主要区别是+运算符是否为该数据类型定义良好。如果考虑使用str类型,则可以为字符串实现加法,这样添加其他数据类型将具有将其作为字符串附加的效果。为了显示对此过度简化的代码的外观,我们可以说

class str:
    def __add__(self, num: int) -> str:
        return self + str(num)

这很有意义。现在,如果我们考虑一个整数的加法运算,那么考虑添加一个字符串就没有多大意义了。从数字上讲,如果我们有数字5,然后您的数学老师说:“好,请在数字5上添加单词'foobar'”,您将不知道该怎么做。这本质上是在编程语言中重载运算符的基本思想。实际上,您在此处说明的问题是Java语言最常见的问题之一,因为人们不考虑针对不同数据类型实现算术运算符的逻辑。

edit:有人向我指出python甚至不允许在int上添加str,所以我对python的看法有点平淡;但是,我希望这一概念总体上适用于面向对象的语言。

相关问题