Making immutable instances
Mike
vimakefile at yahoo.com
Thu Nov 24 01:11:02 EST 2005
"Ben Finney" <bignose+hates-spam at benfinney.id.au> wrote in message
news:dm2rmv$aif$1 at rose.polar.local...
> Howdy all,
>
> How can a (user-defined) class ensure that its instances are
> immutable, like an int or a tuple, without inheriting from those
> types?
>
> What caveats should be observed in making immutable instances?
IMHO, this is usually (but not always) a mistake. (If you're programming a
missle guidance system, or it makes your program go faster it's not a
mistake :))
So are PRIVATE, CONST (all types), SEALED, FINAL, etc -- even the best
programmer doesn't foresee what a user will want to do to make best use of
his components, and many a time I've been annoyed (in Java and MS
frameworks) by not being able to access/modify/subclass a member/class that
I know is there because it has to be there (or because I can see it in the
debugger), but it's not accessable because the programmer was overly clever
and had been to OOP school. A fine-grained capability architecture married
to the language and runtime where I can declare my own level cleverness to
override the programmer's would be nice, but I think Python's voluntary
DoThis, _DoThisIfYouReallyHaveTo, and __You'dBetterKnowWhatYou'reDoing__
approach is a better way to go than the undefeatable keyword approach.
m
>
> --
> \ "Love is the triumph of imagination over intelligence." -- |
> `\ Henry L. Mencken |
> _o__) |
> Ben Finney
More information about the Python-list
mailing list