为什么input('str'+ int)不起作用,而print(int +'str')不起作用
我用过 x =(“ enter” + t +“ th value”)'''在此键入(t)= int'''
它奏效了, 但, 我使用印刷(230 +“ k $”) 并且显示Type-error:+不支持的操作数类型:'int'和'str'
为什么前一行代码有效/
答案 0 :(得分:1)
这里的主要区别是+
运算符是否为该数据类型定义良好。如果考虑使用str
类型,则可以为字符串实现加法,这样添加其他数据类型将具有将其作为字符串附加的效果。为了显示对此过度简化的代码的外观,我们可以说
class str:
def __add__(self, num: int) -> str:
return self + str(num)
这很有意义。现在,如果我们考虑一个整数的加法运算,那么考虑添加一个字符串就没有多大意义了。从数字上讲,如果我们有数字5
,然后您的数学老师说:“好,请在数字5上添加单词'foobar'”,您将不知道该怎么做。这本质上是在编程语言中重载运算符的基本思想。实际上,您在此处说明的问题是Java语言最常见的问题之一,因为人们不考虑针对不同数据类型实现算术运算符的逻辑。
edit:有人向我指出python甚至不允许在int
上添加str
,所以我对python的看法有点平淡;但是,我希望这一概念总体上适用于面向对象的语言。