question sur les classes

question sur les classes - Python - Programmation

Marsh Posté le 14-03-2009 à 18:32:29    

Bonjour,
Je suis en train de bosser sur python et je viens de rencontrer un cas que j'ai du mal à comprendre :
Instance1=class1()
Instance2=Instance1.class2()
J'ai adapté le truc (en faite cela vient de panda 3D)
Ma question :
La 2ème ligne peut-elle vraiment exister, si oui elle sert à quoi (je ne comprends pas le "Instance1.class2()" )
Merci pour votre aide (en esperant que ma question est clair !)

Reply

Marsh Posté le 14-03-2009 à 18:32:29   

Reply

Marsh Posté le 15-03-2009 à 08:20:30    

Je précise un peu mon problème, en vous donnant l'original dans panda 3D

Code :
  1. #Load the panda actor, and loop its animation
  2. pandaActor = Actor.Actor("models/panda-model",{"walk":"models/panda-walk4"})
  3. pandaActor.setScale(0.005,0.005,0.005)
  4. pandaActor.reparentTo(render)
  5. pandaActor.loop("walk" )
  6. #Create the four lerp intervals needed to walk back and forth
  7. pandaPosInterval1= pandaActor.posInterval(13,Point3(0,-10,0), startPos=Point3(0,10,0))
  8. pandaPosInterval2= pandaActor.posInterval(13,Point3(0,10,0), startPos=Point3(0,-10,0))
  9. pandaHprInterval1= pandaActor.hprInterval(3,Point3(180,0,0), startHpr=Point3(0,0,0))
  10. pandaHprInterval2= pandaActor.hprInterval(3,Point3(0,0,0), startHpr=Point3(180,0,0))


Actor est une classe, donc pandaActor est une instance de cette classe (ligne 2)
Ce que je n'arrive pas à comprendre c'est le :
pandaPosInterval1= pandaActor.posInterval(........)
posInterval est aussi une classe, je ne comprends donc pas le : pandaActor.posInterval(........)
Pratiquement, cela ne me pose aucun problème, j'ai bien compris le truc, mais au niveau théorique (pyhton pur), je ne vois pas à quoi cela correspond.
Merci pour votre aide

Reply

Marsh Posté le 15-03-2009 à 12:43:27    

regarde le code de panda...
 
Mais il y a beaucoup de chance que Actor.posInterval soit une méthode qui renvoi simplement une instance d'une classe nommé Interval...


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 15-03-2009 à 13:34:45    

Merci pour ta réponse, mais dans la doc de panda3d (référence), posInterval est listé dans les classes et pas dans les méthodes ! D'où mon interogation !

Reply

Marsh Posté le 15-03-2009 à 14:43:39    

PosInterval != posInterval
La case est importante.

 

J'ai jeté un œil rapide sur la doc de panda3d et je n'ai pas trouvé de méthode posInterval.
Est-ce que le code que tu as donné tourne avec la dernière version de panda ?


Message édité par KangOl le 15-03-2009 à 14:44:27

---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 15-03-2009 à 14:56:01    

Désolé pour la case, c'est bien PosInterval, et c'est bien documenté dans les classes (rien dans les fonctions et rien dans les méthodes) d'où mon interogation cela correspond à quoi : instance2=Instance1.class2(...) ?
PS : c'est la dernière version de panda3D (logiciel et doc)

Message cité 1 fois
Message édité par dav74 le 15-03-2009 à 14:56:47
Reply

Marsh Posté le 15-03-2009 à 17:38:02    

dav74 a écrit :

Désolé pour la case, c'est bien PosInterval, et c'est bien documenté dans les classes (rien dans les fonctions et rien dans les méthodes) d'où mon interogation cela correspond à quoi : instance2=Instance1.class2(...) ?
PS : c'est la dernière version de panda3D (logiciel et doc)


Il n'y a pas de "instance2 = instance1.class2()", ça ne veut strictement rien dire. Il y a juste instance2 = instance1.method() [:spamafote]

 

et voilà le code de la methode Actor.posInterval (héritée de NodePath):

Code :
  1. def posInterval(self, *args, **kw):
  2.        from direct.interval import LerpInterval
  3.        return LerpInterval.LerpPosInterval(self, *args, **kw)


Message édité par masklinn le 15-03-2009 à 18:18:58

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 15-03-2009 à 19:22:57    

Ok, cela me rassure que "instance2 = instance1.class2()" soit du grand n'importe quoi, mais il n'empêche que quand tu prends la doc de panda 3D la seule trace de  PosInterval est dans les classes, c'est cela que j'ai du mal à piger !!
En tout cas merci pour ta réponse qui m'a rassuré

Reply

Marsh Posté le 15-03-2009 à 19:24:03    

dav74 a écrit :

Ok, cela me rassure que "instance2 = instance1.class2()" soit du grand n'importe quoi, mais il n'empêche que quand tu prends la doc de panda 3D la seule trace de  PosInterval est dans les classes, c'est cela que j'ai du mal à piger !!


Panda 3D est insuffisament documenté, et cette méthode/ce comportement n'est pas dans la doc.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 15-03-2009 à 19:27:30    

Ok merci beaucoup pour l'info

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed