Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

Faire passer un objet pour une fonction? [fermés]

–1 vote

Après quelques recherches suite à la réponse faite à ma première question, je suis tombé sur la méthode magique

> __call__

(écrit _ _ call _ _ par la suite sinon c'est transformé automatiquement en gras)

Si je comprends bien, c'est ça qui permet de faire qu'un objet (une instance d'une classe possédant un _ _ call _ _ spécifique) est reconnu comme une fonction (et pourrait donc être une solution à mon problème).
Ma question devient donc: est-ce une idée viable d'espérer pouvoir créer une classe programmatiquement (en la faisant dériver de 'type' si j'ai bien compris), de lui insérer une méthode _ _ call _ _ pour qu'une instance de cette classe soit considée comme une fonction par une autre fonction de la libraire scipy qui attend une fonction en argument?
Si oui, est-ce que je dois tout mettre tout le code dans _ _ call _ _ ou bien dois-je créer une méthode spécifique contenant les équations, et m'arranger que la méthode _ _ call _ _ lui passe la main?
Encore une fois, le but est que la librairie scipy accepte bien le code comme étant une fonction valide. Or je ne sais pas du tout ce que cela implique "sous le capot" pour Python. Si j'ai bien enregistré que tout est objet en Python, j'imagine qu'un objet de type fonction a des spécificités par rapport à un objet 'classe' plus général, mais j'ignore lesquelles.

NB: Ma question subsidiaire sur les "macros" est secondaire, je n'aurai pas dû mélanger les 2 problématiques. Mon problème n°1 est de pouvoir générer une fonction valide de manière programmatique. Le fait de pouvoir utiliser une sorte de système de macros pour créer le contenu de cette fonction est un problème séparé, ce qui n'était pas clair dans ma question initiale (car pas clair dans ma tête, soyons honnête)

demandé 23-Sep par anonyme
fermés 27-Sep par bubulle

J'ai continué à répondre dans ta question en lien plutôt qu'ici.

A mon avis, cette question devrait être fermée car trop confuse.
l'approche que tu as en tête est vraiment compliquée et peu en phase avec les paradigmes de python. (ne t'inquiète pas, il y a aussi des solutions plus traditionnelles à ton problème).

Désolé, je pensais que poser une 'question liée' allait s'afficher à la suite de la première question. Je ne suis pas encore à l'aise avec l'interface de ce site. Je vais essayer de la clôturer (pas encore trouvé le bouton de clôture, mais c'est peut-être lié au fait que j'ai posté de manière anonyme par erreur... le boulet... )

puisque tu es d'accord, je ferme cette discussion.

...