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 :)
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
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__() ;-)
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__() ;-)
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__() ;-)
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__() ;-)
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__() ;-)
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__() ;-)