[gull] Php/MsSQL obsoletes?

Daniel Cordey dc at mjt.ch
Wed Sep 28 14:52:31 CEST 2005


On Wednesday 28 September 2005 13:50, Félix Hauri wrote:

> Il existe des méchanismes (de base ou presque c.f. man perlmodlib) pour
> gérer ce type de limitations, générer des erreurs etc. dans chacun des
> languages cités.
> (je présume un peu pour python, mais le contraire m'étonnerais fort;)

Exact. Python ne va jamais passe outre un truc interdit ou qui ne marche pas. On peut traiter chaque erreur en verifiant le type de l'erreur, ou se contenter de traiter l'occurence de "erreur quelconque". Il est evident que le langage permet aussi d'ecrire des trucs suicidaires comme :

	try :
		x = sin("toto")
	except
		pass

Il est illusoire de croire qu'un langage permet d'empecher les imbeciles de programmer :-)

>
> Même on peut faire des truc rigolos:
> $ perl -e 'use Scalar::Util "dualvar";
>            my $var=dualvar 100, "pommes";
>            printf "%s, %d\n",$var,$var;
>            printf "%d %s.\n",$var,$var;

Tiens, je ne savais pas que l'on pouvait faire ce genre de chose en Perl (normal, vu ce que je connais de de langage :-)). Ca me donne des idees pour le faire en Python. Facile...

>            print "Et pour finir le double de ".$var.
>                     " fait: ".($var * 2)." ".$var."\n";
>           '
> pommes, 100
> 100 pommes.
> Et pour finir le double de pommes fait: 200 pommes

Toujours facile... mais il faut creer l'equivalent de "Scalar dualvar"... juste une classe :-)

class dualvar ;
    def __init__(self, val1, val2) :
	if type(val1) is str :
	    self.str = val1
	    self.float = val2
	else :
	    self.str = val2
	    self.float = val1

    def __str__(self) :
	return self.str

    def __mul__ :
	return self.float

    ...

On peut aussi redefinir les operateur logique (eq, lt, etc.), mais alors on doit definir ce que l'on compare. Entre autre, si la question ne se pose pas trop dans le cas de <> (et encore...) on est face a un dileme dans le cas du test d'egalite, doit-on compare la chaine de cartactere ou la valeur numerique.	    

> Voilà, ce n'est pas très lisible, mais cela fonctionne:-/
> (Je n'ai pas trouvé d'application concrète de ce genre de propriété
>  mis à part de démontrer la souplesse de perl;)

Je pense que c'est sans doute utilise dans les masques de saisie, permettant ainsi d'associe un label avec une valeur... Non exemple !

> Maintenant, pour ``une collection d'objets métiers'', je te recommande
> plutôt ``C'', c't'un vieux truc mais on n'a encore pas trouvé mieux;)

Et puis tu peux effectuer des operations arithmetiques sur des pointeurs... le reve :-)

dc
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://forum.linux-gull.ch/pipermail/gull/attachments/20050928/e39745d3/attachment.htm>


More information about the gull mailing list