Class 运算符重载python自定义类
假设我想为我创建的某个类重载一个操作符(现在就说Class 运算符重载python自定义类,class,python-2.7,operator-overloading,Class,Python 2.7,Operator Overloading,假设我想为我创建的某个类重载一个操作符(现在就说+) class A (object): #code here 然后: a = A() b = A() 我将如何定义: c = a + b 还是类似的? (注意:这个问题纯粹是理论性的,我可能会在某个时候使用它,但不是现在(除非它真的很容易,我真的需要使用它)) (请注意,如果可以对其他对象执行此操作,例如和,或,非,str,e.t.c.)由于A是二进制运算符的第一个操作数,您应该定义。如果A是第二个操作数,并且无法更改第一个操作数的
+
)
class A (object):
#code here
然后:
a = A()
b = A()
我将如何定义:
c = a + b
还是类似的?
(注意:这个问题纯粹是理论性的,我可能会在某个时候使用它,但不是现在(除非它真的很容易,我真的需要使用它))
(请注意,如果可以对其他对象执行此操作,例如
和,或,非,str
,e.t.c.)由于A
是二进制运算符的第一个操作数,您应该定义。如果A
是第二个操作数,并且无法更改第一个操作数的类,则必须定义
谢谢,他们是为和或或或而不是这样做的一种方式吗?让我们假设我想def\uuu pow\uuuuuuuuuo(self,y)
。更好的方法是重新定义它,比如列表类型。我该怎么做?甚至有可能吗?在类之外定义方法并在类之后修补它们是可能的。用神奇的方法做这件事是值得怀疑的。但是修补C中定义的类型是不可能的!我不知道列表是用C预定义的!