Thanks guys,
NamedTuple implementation is preety nice solution.
--nitin
On Thu, Aug 19, 2010 at 6:28 PM, Peter Otten <[email protected]> wrote:
> Peter Otten wrote:
>
> > Nitin Das wrote:
> >
> >> class mymut(object):
> >>
> >> def __setattr__(self,k,v):
> >> if hasattr(self,k):
> >> if self.__dict__.get(k) == None:
> >> self.__dict__[k] = v
> >> else:
> >> raise TypeError("Cant Modify Attribute Value")
> >> else:
> >> raise TypeError("Immutable Object")
> >>
> >>
> >> class mm(mymut):
> >> x = ''
> >> y = ''
> >> def __init__(self,x,y):
> >> self.x = x
> >> self.y = y
> >>
> >>
> >>
> >> p = mm(10,11)
> >> print p.x
> >> print p.y
> >>
> >>
> >> I have created this immutable object.Is there any other better
> >> implementation?
> >
> > How about
> >
> >>>> from collections import namedtuple
> >>>> Mm = namedtuple("Mm", "x y")
> >>>> p = Mm(10, 11)
> >>>> p.x
> > 10
> >>>> p.y
> > 11
> >>>> p.x = 42
> > Traceback (most recent call last):
> > File "<stdin>", line 1, in <module>
> > AttributeError: can't set attribute
> >>>> p.z = 42
> > Traceback (most recent call last):
> > File "<stdin>", line 1, in <module>
> > AttributeError: 'Mm' object has no attribute 'z'
> >>>>
>
> By the way, you can see the class definition with
>
> namedtuple("Mm", "x y", verbose=True)
>
> Peter
>
> _______________________________________________
> Tutor maillist - [email protected]
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
>
_______________________________________________
Tutor maillist - [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor