Je n'ai pas ete particulierement seduit, mais il y a bien une chose qui a retenu mon attention. Le systeme de message.
Du coup je me demandais s'il n'etait pas possible d'avoir la meme chose en python.
Je m'explique...
imaginons un cas tres simpliste, du genre
def fonction(x):
if x>0:
return x
else:
return None
resultat = [fonction(x)+1 for x in xrange(-5,5)]
he bien pas de chance, comme l'addition ne fonctionne pas avec None, et bien on aura une belle exception
ce que j'aimerais, c'est un objet NULL, pour lequel n'importe quelle methode renverrait NULL (par example, NULL+1 => NULL, sqrt(NULL) => NULL), ou alors si l'on essaie d'appliquer une methode non definie pour la classe en cours, renvoyer ce NULL.
ainsi, sqrt('ABCDEF') => NULL
ca m'eviterait d'avoir des "if not None" partout dans mon code ^^
# errata
Posté par PyroTokyo . Évalué à 1.
mais on va pas chipoter hein ^^
# Il faut le créer
Posté par lolop (site web personnel) . Évalué à 1.
Si tu veux un type de données avec un comportement de ce genre - un peu particulier - il faut créer une classe ad-hoc.
Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN
[^] # Re: Il faut le créer
Posté par chimrod (site web personnel) . Évalué à 1.
À part apply() — qui est deprecated — je ne vois pas trop comment faire ça.
( Ou alors il y a une fonctionnalité de python qui m'échappe encore ? )
[^] # Re: Il faut le créer
Posté par PyroTokyo . Évalué à 1.
un ami m'a dit que pour faire ca il faudrait en gros tout faire heriter non pas d'object, mais d'une autre classe, ce qui a l'air assez bourrin
je ne suis pas expert du tout, donc si ca se trouve c'est une anerie ^^
# Quelques détails ?
Posté par MsieurHappy . Évalué à 1.
Avant d'avancer des idées de solution, j'aimerais savoir pourquoi tu as ces valeurs nulles et si elles sont significatives pour le reste du traitement.
[^] # Re: Quelques détails ?
Posté par PyroTokyo . Évalué à 1.
J'utilise beaucoup les expressions regulieres, et donc j'ai souvent des objets "match" ou "search".
Le probleme c'est que quand Python ne trouve pas l'expression reguliere, au lieu de renvoyer un objet il renvoie None.
Du coup, je dois me coltiner des "if not None" a foison avant d'appeler les fonctions que je veux utiliser sur mes objets match
# Exception ?
Posté par nicolas . Évalué à 2.
# Monades
Posté par Perthmâd (site web personnel) . Évalué à 2.
[^] # Re: Monades
Posté par max22 . Évalué à 2.
[http://lukeplant.me.uk/blog/posts/understanding-monads-via-p(...)]
l'exemple en question est :
Prelude> double Nothing
Nothing
Prelude> double (Just 1.5)
Just 3.0
et à la fin il y a une petite implémentation en python :)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.