Python如何评估以下表达式? anim1
在anim2
后执行。那个简单的+运算符如何?Python如何评估这个表达式?
anim1 = Animation(duration=1, center=(100,100) type='delta')
anim2 = Animation(duration=1, rotation=45 type='delta')
anim = anim1 + anim2
Python如何评估以下表达式? anim1
在anim2
后执行。那个简单的+运算符如何?Python如何评估这个表达式?
anim1 = Animation(duration=1, center=(100,100) type='delta')
anim2 = Animation(duration=1, rotation=45 type='delta')
anim = anim1 + anim2
这将调用anim1.__add__(anim2)
。
为了理解发生了什么,你必须从Animation类检查__add__
方法的定义。
它甚至可能会调用'anim2 .__ radd __(anim1)',尽管在这种情况下这不太可能。 – Michael 2010-11-01 13:53:04
+1 @迈克尔:的确,谢谢。 – 2010-11-01 14:05:47
查看dis
module。它有一个功能dis
,它将采用函数/模块/类并向您显示字节码。
在Python中,您可以重新定义数学运算符的行为。如果我理解你的问题,Animation可能会使用__add__
方法重新定义“+”运算符。
什么是“动画”?你将不得不提供更多信息,因为你描述的行为完全取决于你的类定义而不是Python的语法。 – 2010-11-01 13:41:11
动画是API中的预定义类。 – Gooner 2010-11-01 13:50:28
就我个人而言,我认为黑客使用'__add__'来使'+'做这样的事情是一种可怕的滥用。 – bobince 2010-11-01 14:21:24