• # Du python !

    Posté par . En réponse au message Deuxième mouture script multi clock. Évalué à 3.

    Ma question est la suivante: il ne peux pas y avoir plus de 10 (de mémoire) variable de classe, que j'ai contourner en créeant des dictionnaires. N'est ce pas unpythonic de le permettre ?
    Le code devient moins lisible, concrètement, cela ne change pas grand chose. Les docstrings ne sont pas super précis , mais c'est plus par flegme que pour autre chose

    Non les dictionnaires c'est bien l'idée, quand tu dois trimballer ta conf d'un fonction/méthode à une autre, tout est groupé dans ton objet, c'est plus facile. Il faut regarder plus loin que la règle "bête", souvent quand on en arrive là c'est qu'il y a moyen de découper/réorganiser de manière plus logique, sur des éléments plus simples à appréhender.

    Dans ton cas, si tu dois initialiser tout un dictionnaire, peut-être que cela mérite une méthode dédiée. self.ma_conf = init_ma_conf() # retourne un dict().

    J'ai aussi lu que lambda, map etc.. étaient unpythonic, mais comment mapper les options des commandes si un menu est réalisé par une boucle ? (ici le menu pour supprimer des horloges)

    Avec les list comprehensions : https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions

    for i in self.conf["timezone"]:
     self.remove.add_command(
     label=i, command=lambda x=i: self.removetz(x)
     )

    devient

    [self.removetz(tz) for tz in self.conf["timezone"]]