Extending long
Russell Blau
russblau at hotmail.com
Wed Jun 19 17:50:00 EDT 2002
More information about the Python-list mailing list
Wed Jun 19 17:50:00 EDT 2002
- Previous message (by thread): Extending long
- Next message (by thread): PyOpenGL 2.0.0.44
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
"Martin v. Loewis" <martin at v.loewis.de> wrote in message news:m3ofe7q902.fsf at mira.informatik.hu-berlin.de... > estama at dblab.ntua.gr (Freeman Stopjohn) writes: > > > class bitnum(long): > > def getbit(self,bitn): > > if self & (1 << bitn) >0: > > return 1 > > else: > > return 0 > > def setbit(self,bitn): > > self=self ^ ( 1 << bitn ) > > ----- > > > > The getbit method works ok. > > The setbit doesn't (it doesn't change the number). > > > > What am i doing wrong? > > You are assigning to self. self is a parameter of setbit, just like > bitn. Assignments to formal parameters have no effect. > > What you want to do cannot be done; long objects are immutable. I > recommend you implement a wrapper, rather than inheriting. How about: def setbit(self,bitn): return bitnum(self ^ ( 1 << bitn )) This will not modify the bitnum() instance in place, since (as you pointed out) such an instance is immutable, but it will return a new instance with the desired value. -- I don't actually have a hotmail account; but I do have one on excite.com if you really want to get in touch with me.
- Previous message (by thread): Extending long
- Next message (by thread): PyOpenGL 2.0.0.44
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list