Recoucou JF,
En partant du principe suivant :
Pourquoi faire plus compliqué quand on peut faire plus simple?
Je t'ai trouvé une solution, qui semble bien marcher ici, mais il va
falloir que tu testes à ton niveau, voir si ça te conviendrait ou pas.
Il s'agit, au lieu de stocker la valeur de la ligne dans une variable,
qui au final, ne se souviendra que de la toute première ligne qu'elle a
stockée, de créer plutôt une fonction, avec un no abrégé, puisque c'est
l'objet principal de la demande.
Voici le prototype de la fonction :
import sixpad as sp
edit = sp.window.curPage
def ligne():
return edit.curLine
Ensuite, ou que tu sois dans le code, tu n'aura plus qu'à exécuter cette
fonction, pour récupérée la ligne la plus récente ayant été atteinte,
comme suit, par exemple, pour avoir le texte de la ligne courante :
sp.say(edit.line(ligne()), True)
Bien sûr, tu devras créer une fonction pour chaque cas de figure, en
espérant qu'il n'y en ai pas plusieurs, mais ces fonction ne seront
créées qu'une seule fois.
Je sais, la mission principale d'une fonction c'est de réaliser des
actions beaucoup plus élaborées que de retourner un numéro de ligne,
mais dans ton cas de figure, ça pourrait être utile.
Voila, maintenant, à toi de voir.
Merci à toi.
Bien amicalement,
Abdel.
Le 31/01/2017 à 12:02, Abdel a écrit :
Coucou JF,
Ah OK.
Dans ce cas, je te conseille de revenir à la réponse donnée par
Quentin, car effectivement, le contexte est assez complexe.
Si on était en C++, on aurait pu facilement le faire, en utilisant les
références, mais en Python, le contexte est différent.
En Python, on peut utiliser ce que l'on appelle les descripteurs, qui
sont en fait des objets qui servent d'attributs dans des classes.
Le descripteur property est d'ailleurs très connu en Python.
Le problème, c'est que bien que cet objet puisse être implémenté
séparément, il faudra le déclarer dans la classe où l'on va souhaiter
l'utiliser, c'est à dire dans la classe Page, en valeur de l'attribut
curLine.
Bref, trop de choses pour éviter un détail qui n'est pas si gênant que
ça, et que les edit.curLine corrigent assez bien.
Tu pourras lire un tuto assez bien fait sur les descripteurs en
Python, à l'adresse suivante :
http://autourducode.com/les-descripteurs.html
Voila, merci à toi.
Bien amicalement,
Abdel.
Le 30/01/2017 à 19:59, Jean-François Colas a écrit :
Hello Abdel,
Oui, bien sûr:
maLigne = sp.window.curPage.curLine
print (maLigne) # devrait t'afficher le numéro de la ligne en
question dans la console, non?
Oui. Et lorsque curLigne change, maLigne ne change pas et c'était ça
mon interrogation. Je vais prendre un moment pour revoir le message
de Matt, bon après, c'est aussi pour que les lignes de code soient
plus courtes et c'est tout...
J.-F.
Le 29/01/2017 22:24, Abdel a écrit :
Salut JF,
En complément de la réponse de notre ami Quentin, si j'ai bien compris
ta question, je pense que tu peux parfaitement déclarer même unobjet
pointant vers un numéro de ligne, pourquoi pas.
import sixpad as sp
maLigne = sp.window.curPage.curLine
print (maLigne) # devrait t'afficher le numéro de la ligne en question
dans la console, non?
Tu peux ainsi déclarer autant d'objets pour les numéros de lignes que
tu voudras.
Mais ce ne sont pas des choses que l'on fait en priorité, on préfère
plutôt déclarer comme tu l'as fait, un objet pointant vers une classe,
comme la classe Page par exemple :
edit = sp.window.curPage
Notre objet edit sera alors ce que l'on appelle une instance de la
classe Page.
Cela simplement pour nous faciliter l'accès aux méthodes et attributs
de la classe Page.
Mais après, tout le monde est libre bien sûr d'abréger ce qu'il veut.
Personnellement, je pense qu'à la longue, le fait de définir trop de
noms d'objets abrégés même pour le moindre attribut pourrait être une
mauvaise idée, car on risquerait d'être à cours d'idées en matière de
nouveaux noms à donner lol !
Et s'en rappellerait-on systématiquement?
Mais bien sûr, cela reste l'avis de votre ami Abdel, qu'il partage
volontiers avec vous.
Merci à toi.
Bien amicalement,
Abdel.
Le 28/01/2017 à 09:49, QuentinC a écrit :
Salut,
A ma connaissance il n'y a pas de mécanisme de référence en python.
Le plus proche que tu puisses faire si tu es à l'intérieur d'une
classe, c'est une propriété je pense.
Progliste :
Pour se d�sinscrire de la liste :
mailto:[email protected]?subject=unsubscribe
Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/
Je vous rappelle que les pi�ces jointe sont activ�s leurtaille est
limit� � 2 MO
Pour acc�der aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en
priv�, je vous r�pondrez en priv�.
Progliste :
Pour se d�sinscrire de la liste :
mailto:[email protected]?subject=unsubscribe
Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/
Je vous rappelle que les pi�ces jointe sont activ�s leur taille est
limit� � 2 MO
Pour acc�der aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en
priv�, je vous r�pondrez en priv�.
Progliste :
Pour se d�sinscrire de la liste :
mailto:[email protected]?subject=unsubscribe
Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/
Je vous rappelle que les pi�ces jointe sont activ�s leur taille est
limit� � 2 MO
Pour acc�der aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en
priv�, je vous r�pondrez en priv�.
Progliste :
Pour se d�sinscrire de la liste :
mailto:[email protected]?subject=unsubscribe
Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/
Je vous rappelle que les pi�ces jointe sont activ�s leur taille est
limit� � 2 MO
Pour acc�der aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en
priv�, je vous r�pondrez en priv�.
Progliste :
Pour se d�sinscrire de la liste :
mailto:[email protected]?subject=unsubscribe
Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/
Je vous rappelle que les pi�ces jointe sont activ�s leur taille est limit� � 2 MO
Pour acc�der aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en priv�, je
vous r�pondrez en priv�.