Mug <exallion.l...@gmail.com> writes: > hi ,i had a problem on constructor overwrite: > i have something like: > > class obj: > def __init__(self, x=100, y=None): > if y is None: > self.x=x > else: > self.y=y > so i can call : > objet = obj() # x=100 y=None > or > objet = obj(40) # x= 40 y=None > > but if i do : > objet = obj('not cool') #x='not cool' y=None > since x is not typed . > > i am waiting for a result: > objet = obj('not cool') #x=100 y='not cool' > as they do in C++ or java. > is there a way to do it? > thanks
Your problem doesn't seem very well defined (e.g. do you ever call obj with two arguments?), but as I understand it you can do this: def __init__(self, x=100): if isinstance(x, int): self.x, self.y = x, None else: self.x, self.y = None, x HTH -- Arnaud -- http://mail.python.org/mailman/listinfo/python-list