Pour avoir un "vrai" typage, ça va être dur directement, car tu peut toujours faire du "a = quelquechose" qui va t'effacer l'ancien a, quoiqu'il arrive.
Le moyen le plus simple est d'utiliser les property des classes:
classTint(object):def__init__(self,val):self.data=val@propertydefdata(self):returnself._data@data.setterdefdata(self,val):iftype(val)isint:self._data=valelse:raiseTypeError("Donne un entier")>>>a=Tint(3)>>>printa.data3>>>a.data=4>>>printa.data4>>>a.data=4.1(...)TypeError:Donneunentier>>>a.data+=3>>>printa.data7>>>a.data+=4.2(...)TypeError:Donneunentier>>>a.data+="toto"TypeError:unsupportedoperandtype(s)for+=:'int'and'str'>>>b=Tint(3.2)TypeError:Donneunentier
# class property
Posté par THE_ALF_ . En réponse au journal [MyFirstPython, nouveau projet ?]Le python c'est bien mangez-en !!. Évalué à 1.
Pour avoir un "vrai" typage, ça va être dur directement, car tu peut toujours faire du "a = quelquechose" qui va t'effacer l'ancien a, quoiqu'il arrive.
Le moyen le plus simple est d'utiliser les property des classes:
Pas parfait, mais surement le plus simple.