A Suggestion for Python Dictionary/Class
David Bolen
db3l at fitlinxx.com
Fri Dec 22 20:30:20 EST 2000
More information about the Python-list mailing list
Fri Dec 22 20:30:20 EST 2000
- Previous message (by thread): A Suggestion for Python Dictionary/Class
- Next message (by thread): Courses
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
William Djaja Tjokroaminata <billtj at y.glue.umd.edu> writes: > In C/C++/Java, if a member does not exist and we try to access or assign > it (because of some typo, perhaps), it will be caught by the compiler > simply as syntax error. Not so with Python class. > > Therefore, is there any way for me to define a class, with some definite > members just like in C/C++/Java, so that no new members can be defined? I > am trying to do it, but using some conventions, not using the Python > language features. One approach to handling this is to define a __setattr__ function in your class, which will get called every time you try to set any attribute of that object. You can impose any sort of constraints there that you want - for example, verifying that the attribute already exists before permitting the assignment. I believe there have been more elaborate posts in this vein to this group in the past - try the "How often to problems arise ... ?" thread at: http://x72.deja.com/threadmsg_ct.xp?AN=697282174.1&mhitnum=0&CONTEXT=977534927.1986658345 or more specifically the post within it from Alex Martelli that implements a Strict class that only permits changing existing attributes: http://x61.deja.com/threadmsg_ct.xp?AN=697340791.1&mhitnum=5&CONTEXT=977534789.910295077 > Because Python provides a read-only list in terms of tuple, I think it > will be nice if Python provides another class type with fixed members, > just like a dictionary with read-only keys. Any opinion, anyone? Since you can implement this policy your own (and if at the class level, permit that policy to be inherited), I'm not sure it's something that needs to be added to the core language itself. -- -- David -- /-----------------------------------------------------------------------\ \ David Bolen \ E-mail: db3l at fitlinxx.com / | FitLinxx, Inc. \ Phone: (203) 708-5192 | / 860 Canal Street, Stamford, CT 06902 \ Fax: (203) 316-5150 \ \-----------------------------------------------------------------------/
- Previous message (by thread): A Suggestion for Python Dictionary/Class
- Next message (by thread): Courses
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list