2010-11-01 93 views
2

Python如何评估以下表达式? anim1anim2后执行。那个简单的+运算符如何?Python如何评估这个表达式?

anim1 = Animation(duration=1, center=(100,100) type='delta') 
anim2 = Animation(duration=1, rotation=45 type='delta') 

anim = anim1 + anim2 
+3

什么是“动画”?你将不得不提供更多信息,因为你描述的行为完全取决于你的类定义而不是Python的语法。 – 2010-11-01 13:41:11

+0

动画是API中的预定义类。 – Gooner 2010-11-01 13:50:28

+0

就我个人而言,我认为黑客使用'__add__'来使'+'做这样的事情是一种可怕的滥用。 – bobince 2010-11-01 14:21:24

回答

8

这将调用anim1.__add__(anim2)

为了理解发生了什么,你必须从Animation类检查__add__方法的定义。

+3

它甚至可能会调用'anim2 .__ radd __(anim1)',尽管在这种情况下这不太可能。 – Michael 2010-11-01 13:53:04

+0

+1 @迈克尔:的确,谢谢。 – 2010-11-01 14:05:47

0

查看dis module。它有一个功能dis,它将采用函数/模块/类并向您显示字节码。

3

在Python中,您可以重新定义数学运算符的行为。如果我理解你的问题,Animation可能会使用__add__方法重新定义“+”运算符。

更多信息:Official Documentation