Bonjour
Je suis en train d'essayer vainement d'automatiser des traitements sur des types différents (int, srt, list, ensembles).
Et justement le souci, c'est que ces types divers ne traitent pas les données de la même façon
Prenons un exemple: un int et une str
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #!/usr/bin/env python3 # -*- coding: utf-8 -*- datas=( {"name" : "a", "value" : 0, "fct" : int.__add__}, {"name" : "b", "value" : "", "fct" : lambda *args: str(args[1])}, ) for d in datas: for v in (123, 456): d["value"]=d["fct"](d["value"], v) print(datas)
Donc ici, je suis obligé d'affecter le retour de la fonction à la valeur que je veux stocker. Là c'est ok (même si pour la string seule la dernière valeur reste, c'est juste un code d'exemple illustrant mon souci)
Maintenant une liste et un ensemble
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #!/usr/bin/env python3 # -*- coding: utf-8 -*- datas=( {"name" : "a", "value" : set(), "fct" : set.add}, {"name" : "b", "value" : list(), "fct" : list.append}, ) for d in datas: for v in (123, 456): d["fct"](d["value"], v) print(datas)
Ici, les méthodes "add" et "append" des valeurs de stockage se suffisent à elles-mêmes et je n'ai pas à affecter leur retour. D'autant plus qu'elles ne retournent rien.
Et mon souci est d'arriver à trouver une méthode plus générique fonctionnant donc de façon identique pour tous ces types et je n'y arrive pas.
Si quelqu'un avait une idée à me proposer...
Merci à tous.
Partager