2010-11-01 2 views
2

Comment Python évalue-t-il l'expression suivante? anim1 est exécuté après anim2. Comment fonctionne un opérateur simple +?Comment Python évalue-t-il cette expression?

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

anim = anim1 + anim2 
+3

Qu'est-ce que "l'animation"? Vous devrez fournir plus d'informations, car le comportement que vous décrivez dépend entièrement de la définition de votre classe et non de la syntaxe de Python. –

+0

L'animation est une classe prédéfinie dans une API. – Gooner

+0

Personnellement, je pense que hacker '__add__' pour faire' + 'faire quelque chose comme ceci est un abus horrible. – bobince

Répondre

8

Appelez le anim1.__add__(anim2).

Afin de comprendre ce qui se passe sous le capot, vous devez inspecter la définition de la méthode __add__ de la classe Animation.

+3

Il pourrait même appeler 'anim2 .__ radd __ (anim1)' bien que ce soit très improbable dans ce cas. – Michael

+0

+1 @ Michael: en effet, merci. –

0

Consultez le dis module. Il a une fonction dis qui prendra une fonction/module/classe et vous montrera le code d'octet.

3

En Python, vous pouvez redéfinir le comportement des opérateurs mathématiques. Si j'ai compris votre question, Animation redéfinit probablement l'opérateur "+" en utilisant la méthode __add__.

Plus d'info: Official Documentation