【发布时间】:2016-12-14 09:00:52
【问题描述】:
例如,如果我尝试这样做:
a_string + an_int
...其中a_string 是'str' 类型,an_int 是'int' 类型,或者:
an_int + a_string
会有一个TypeError,因为没有类型的隐式转换。我知道如果我使用自己的 int 和 string 子类,我将能够在我的类中重载 __add__() 方法来实现这一点。
但是,出于好奇,我想知道:是否可以重载int 和str 的类定义中的+ 运算符,以便__add__(int,str) 和__add__(str,int) 自动将它们连接为字符串?
如果不是,程序员不应该为原生数据类型重载运算符的原因是什么?
【问题讨论】:
-
感谢您的链接,它很好地解释了如何在用户定义的类中重载运算符。但是,我想知道是否可以为诸如“str”之类的本机数据类型执行此操作' 和 'int'。
-
是python 2.x还是3.x?
-
我目前在我的机器上使用 3.5.2。
标签: python operator-overloading overloading