OVH Cloud OVH Cloud

acceder aux printf des objets :)

3 réponses
Avatar
none
bonjour a tous,

je suis un débutant en python et j'aurais besoin de lumieres avisées
pour me guider.
voila mon probleme:

dans un script python,
je crée des objets "lac = toto("lac")" et "scene = Scene()"
j'ajoute lac dans la scene "scene.add(lac)"

et dans l'objet scene, j'aimerais faire le test suivant:

"position, norm = collision(...)"

avec l'objet qui a été cogné dans position.parent
Quand je fait print position.parent, il m'affiche bien le nom "lac".
C'est celui de toto("lac"). Je me demandais s'il était possible donc de
faire un test du genre:

if position.parent.getstring().contains("lac"):
...

mais ne sachant pas du tout comment accéder aux chaines qu'affichent les
objets, ...

En java tous les objets ont une methode toString() qui renvoie la chaine
de l'objet. Surment qu'il existe le meme mécanisme avec python.

Merci d'avance pour la réponse, si vous la connaissez :)

3 réponses

Avatar
Alex Marandon
On 2005-06-22, none <""> wrote:
[...]
En java tous les objets ont une methode toString() qui renvoie la chaine
de l'objet. Surment qu'il existe le meme mécanisme avec python.


Si j'ai bien compris, c'est __repr__ que tu cherches.

class Plop:
... def __repr__(self):



... return "Je suis de la classe Plop"
...
p = Plop()
print p
Je suis de la classe Plop










Avatar
kaerbuhez
bonjour a tous,

je suis un débutant en python et j'aurais besoin de lumieres avisées
pour me guider.
voila mon probleme:

dans un script python,
je crée des objets "lac = toto("lac")" et "scene = Scene()"
j'ajoute lac dans la scene "scene.add(lac)"

et dans l'objet scene, j'aimerais faire le test suivant:

"position, norm = collision(...)"

avec l'objet qui a été cogné dans position.parent
Quand je fait print position.parent, il m'affiche bien le nom "lac".
C'est celui de toto("lac"). Je me demandais s'il était possible donc de
faire un test du genre:

if position.parent.getstring().contains("lac"):
...

mais ne sachant pas du tout comment accéder aux chaines qu'affichent les
objets, ...

En java tous les objets ont une methode toString() qui renvoie la chaine
de l'objet. Surment qu'il existe le meme mécanisme avec python.

Merci d'avance pour la réponse, si vous la connaissez :)


Va lire la doc sur : les built-in str() et repr(). En bref, le premier
renvoie une "jolie" string destinée aux humains, le deuxième la
représentation technique de l'objet. Celle-ci si elle n'est pas entourée
de <> qui doit être évaluable par eval() cad que
eval(repr(monObjet))==monObjet

exemple:
ml = [2, 5]
repr(ml)
'[2, 5]'



eval(repr(ml)) == ml
True









Tu peux aussi lire la doc relative à __repr__() et __str__() ;-)



Avatar
boubou
Merci beaucoup, c exactement ce que je cherchais.

kaerbuhez wrote:


Va lire la doc sur : les built-in str() et repr(). En bref, le premier
renvoie une "jolie" string destinée aux humains, le deuxième la
représentation technique de l'objet. Celle-ci si elle n'est pas entourée
de <> qui doit être évaluable par eval() cad que
eval(repr(monObjet))==monObjet

exemple:
ml = [2, 5]
repr(ml)
'[2, 5]'



eval(repr(ml)) == ml
True









Tu peux aussi lire la doc relative à __repr__() et __str__() ;-)