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

问题描述 投票:1回答:1

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

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

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

为什么前面的代码行起作用/

python python-3.x typeerror python-2.x
1个回答
1
投票

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

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

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

编辑:有人向我指出python甚至不允许将int添加到str中,所以我的观点对python来说有点平平;但是,我希望该概念总体上适用于面向对象的语言。

© www.soinside.com 2019 - 2024. All rights reserved.