Hello JF et Abdel

Bon pour faire encore plus court, la définition de la fonction peut tenir en 1 
ligne avec les fonctions lambda :

import sixpad as sp
ligne = lambda : sp.window.curPage.curLine

Puis l'appel se fait de la même manière que ce qu'écrit Abdel :
sp.say(edit.line(ligne()), True)

Il reste donc seulement les parenthèses par rapport à une variable normale...

On pourrait peut-être même faire en sorte de les enlever, mais ça serait 
vraiment de la bidouille pour le coup. Et ça ne clarifierait pas le code. Donc 
j'en parle pas sauf si y avait vraiment un besoin.

Bonne soirée.

Cyrille



-----Message d'origine-----
De : progliste-ow...@ml.free.fr [mailto:progliste-ow...@ml.free.fr] De la part 
de Abdel
Envoyé : mardi 31 janvier 2017 22:06
À : progliste@ml.free.fr
Objet : [progliste] Re: 6Pad++, nommer des objets

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:progliste-requ...@ml.free.fr?subject=unsubscribe
>>>>
>>>> Pour voir les archives de la liste :
>>>> http://www.mail-archive.com/progliste@ml.free.fr/
>>>>
>>>> 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:progliste-requ...@ml.free.fr?subject=unsubscribe
>>>
>>> Pour voir les archives de la liste :
>>> http://www.mail-archive.com/progliste@ml.free.fr/
>>>
>>> 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:progliste-requ...@ml.free.fr?subject=unsubscribe
>>
>> Pour voir les archives de la liste :
>> http://www.mail-archive.com/progliste@ml.free.fr/
>>
>> 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:progliste-requ...@ml.free.fr?subject=unsubscribe
>
> Pour voir les archives de la liste :
> http://www.mail-archive.com/progliste@ml.free.fr/
>
> 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:progliste-requ...@ml.free.fr?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/progliste@ml.free.fr/       

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�.
        
        


---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel 
antivirus Avast.
https://www.avast.com/antivirus

Progliste :
Pour se d�sinscrire de la liste : 
mailto:progliste-requ...@ml.free.fr?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/progliste@ml.free.fr/       

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�.
        
        

Répondre à