Problème de notation par point.

Le
Michel Claveau - MVP
Bonjour !

J'ai un problème pour appeler des fonctions système (COM)
qui comportent des points.

Exemple :
# la fonction de ServTest que l'on veut utiliser est nommée "gui.show()"
pf = win32com.client.Dispatch('ServTest')
print pf.gui.show()

Evidemment, Python passe seulement "gui" à pf au lieu de "gui.show".
Ce qui donne un Traceback ressemblant à :
File "XXX.py", line 14, in <module>
print pf.gui.show()
AttributeError: 'function' object has no attribute 'show'


Est-ce que vous auriez une idée, pour "grouper" "gui.show" ?


Merci d'avance.
--
Michel Claveau
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
pdorange
Le #20829981
Michel Claveau - MVP
Est-ce que vous auriez une idée, pour "grouper" "gui.show" ?



Je susi pas sur que python autorise vraiment de nommer une fonction avec
un "point" dans le nom...


Dans la syntaxe python, "." est un délimiteurs...

--
Pierre-Alain Dorange
Ce message est sous licence Creative Commons "by-nc-sa-2.0"
BertrandB
Le #20830891
Michel Claveau - MVP a écrit :
Bonjour !

J'ai un problème pour appeler des fonctions système (COM)
qui comportent des points.

Exemple :
# la fonction de ServTest que l'on veut utiliser est nommée "gui.show()"
pf = win32com.client.Dispatch('ServTest')
print pf.gui.show()

Evidemment, Python passe seulement "gui" à pf au lieu de "gui.show".
Ce qui donne un Traceback ressemblant à :
File "XXX.py", line 14, in <module>
print pf.gui.show()
AttributeError: 'function' object has no attribute 'show'


Est-ce que vous auriez une idée, pour "grouper" "gui.show" ?


Merci d'avance.


Je sens que je vais dire une connerie ....
mai est-ce que
gui = win32com.client.Dispatch('ServTest.gui')
serait légal ? on appelle bien Word.Application
sinon ce ne peut pas être un problème de casse ? les exemples sur le net
semble ne pas poser de pb.
app = win32com.client.Dispatch("Word.Application")
doc_template = app.Documents.Open(doc_template_name)
William Dode
Le #20835551
On 24-12-2009, Michel Claveau - MVP wrote:
Bonjour !

J'ai un problème pour appeler des fonctions système (COM)
qui comportent des points.

Exemple :
# la fonction de ServTest que l'on veut utiliser est nommée "gui.show()"
pf = win32com.client.Dispatch('ServTest')
print pf.gui.show()

Evidemment, Python passe seulement "gui" à pf au lieu de "gui.show".
Ce qui donne un Traceback ressemblant à :
File "XXX.py", line 14, in <module>
print pf.gui.show()
AttributeError: 'function' object has no attribute 'show'


Est-ce que vous auriez une idée, pour "grouper" "gui.show" ?



Qu'est-ce que tu donnes getattr(pf,'gui.show') ?

a+

--
William Dodé - http://flibuste.net
Informaticien Indépendant
rejoc
Le #20835621
Le 24/12/2009 12:36, Michel Claveau - MVP a écrit :
Bonjour !

J'ai un problème pour appeler des fonctions système (COM)
qui comportent des points.

Exemple :
# la fonction de ServTest que l'on veut utiliser est nommée "gui.show()"
pf = win32com.client.Dispatch('ServTest')
print pf.gui.show()


Et un truc du genre :

pf_gui_show = getattr(pf, "gui.swho")
print pf_gui_show()

Ca m'a déjà aidé dans des cas où les attributs avaient des "-" alors,
pourquoi pas ...
Publicité
Poster une réponse
Anonyme