Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Class 运算符重载python自定义类_Class_Python 2.7_Operator Overloading - Fatal编程技术网

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预定义的!