> Now coming back to your question, that you want a non-changeable > name, > well, one can create such a beast, e.g.: > > def constant(value): > ... >class Test(object): > const_a = constant(123) > This creates a member that can only be fetched, but not set or > deleted.
Only within constant. the member const_a can be changed via simple assignment. > But in practice, I personally never have seen a need for something > like > this. You can always overcome the above constant. Btw, you can do > that > in C++ privates too, worst case by casting around and ending up with > a > pointer that points to the private element ;) I've seen an even more mundane trick to bypass private(rather than const): #define private public #define protected public #include "someclass.h" SomeClass c = new SomeClass; c->someVar = 42; etc... I suppose you could avoid that by prefixing every classs definition with #define private private #define protected protected class SomeClass{....}; But it illustrates the relative fragility of C++ apparently tight control of names and visibility. And with a pointr to the right memory location and a cast you can do just about anything... In that respect I prefer the blatant openness of Python to the perceived protection of C++ Alan G. _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor