Bonjour,
désolé pour ce titre mais je n'ai pas trouvé mieux.
Existe-t-il un moyen de définir un objet monObjet et d'appeler une méthode via monObjet<mesArguments> ?
Version imprimable
Bonjour,
désolé pour ce titre mais je n'ai pas trouvé mieux.
Existe-t-il un moyen de définir un objet monObjet et d'appeler une méthode via monObjet<mesArguments> ?
avec monObjet<5>, je ne pense pas, mais avec monObject[5], oui, bien sûr*! :mouarf:
Il suffit de donner à la classe de monObjet les fonctions qui la rendront “subscriptable” –*au minimum, __getitem__(self, key), qui devra retourner l’objet fonction adéquat*!
Ah, t’as édité, entre temps… ;)
Bon, dans ce cas, il faut définir dans la classe de ton objet la fonction __call__(self, *args, **kwargs) (par exemple, seul self est obligatoire*!).
Dès lors, tous tes objets seront callable, c’est-à-dire qu’ils pourront se comporter comme des fonctions… :D
Merci (je connaissais dékà __getitem__).
On fera sans si vraiment c'est impossible.
Waou… La collision… :lol:
Non, pas de chevrons… Ils ne font pas partie de la syntaxe python, de toute façon, si*?
EDIT: Mais je ne vois pas pourquoi utiliser des parenthèses te pose problème*?:calim2: Sauf si c’est une question d’esthétique, évidemment… :mouarf:
Bon, tant pis pour moi.
Salut,
Ce n'est pas la syntaxe "Python" mais comme c'est "interprété", il ne devrait pars être infaisable d'ajouter une couche à "import" pour qu'il transforme avant de compiler.
Comme <> n'est pas trop utilisé, un truc "brutal" pourrait faire l'affaire.
Mais bon... quel est l'intérêt d'un Python "custom" sans valeur ajoutée fonctionnelle?
Cordialement
- W
Bonne question.
En fait ma question vient de ce que ceci est utilisé dans Sage, certains objets utilisent cet technique, et ceci est très pratique.
Du coup, je serais très curieux de savoir comment cela est fait.
Si tu as une idée, je suis preneur.
Salut,
Pas le temps de parcourir le gros tas de doc pour voir les use case.
Comme ça ressemble à du Python, ils ont peut être hacké sur une surcharge d'opérateurs comme __lt__ et __gt__.
Mais c'est juste une idée à 3 balles.
Cordialement,
- W
Je m'abonne à la liste de Sage, je leur pose la question, et je posterais ici la solution si on me la donne.