[gull] Php/MsSQL obsoletes?
Cedric BRINER
briner at infomaniak.ch
Fri Oct 7 11:45:06 CEST 2005
> Effectivement, c'est une définition très vaste et contradictoire.
> Je pensais à ça...
> tableau = [1, 2, 3, "a", "b", "c"]
> Moi ça me surprend un peu. Typiquement si je veux faire une collection
> d'objets métiers, peut-on forcer le type d'objets que l'on accepte?
>
si tu veux forcer une liste d'objet type, je me suis fait le plaisir de te montrer ca en faisant un nouvel objet list qui n'accepte que des entiers. desole pour la reponse tardive : )
class clistint(list):
def append(self, value):
if type(value) == int:
super(clistint, self).append(value)
else:
raise 'the value %s has to be an int' % str(value)
listint=clistint()
listint=1
listint=clistint([1,2,'3'])
listint
# aie!! on se retrouve avec un listint qui contient un caractere
alors on peut s'occuper de ce cas. c'est un peu plus compliques..
import exceptions
class clistint2(list):
def __init__(self, *args, **kw):
print 'args :'+str(args)
print 'kw :'+str(kw)
if len(args)>1:
raise exceptions.TypeError('clistint2() takes at most 1 argument (%s given)' % str(len(args)) )
if 1==len(args):
args=([arg for arg in args[0] if type(arg) == int],)
super(clistint2, self).__init__(*args, **kw)
def append(self, value):
if type(value) == int:
super(clistint2, self).append(value)
else:
raise 'the value %s has to be an int' % str(value)
listint2=clistint2([1,2],1,3)
listint2=clistint2([1,2,'2'])
listint2=clistint2([1,2])
listint=1
Ced.
--
Cedric BRINER
Geneva - Switzerland
More information about the gull
mailing list