On Mon, 4 Dec 2000, Greg Ward wrote: > On 03 December 2000, Michel Pelletier said: > > Been doing lots of work on the Python Interfaces proposal. > > I'll say! What I've read so far is interesting. Thanks. > > For a good, high-level introduction to this package, read the user > > documentation in the Wiki: > > > > http://www.zope.org/Wikis/Interfaces/InterfaceUserDocumentation > > This is what I've been reading. Some random, off-the-top-of-my-head > comments: > > * isn't the type of an attribute interesting? I don't see that > mentioned anywhere, and this is something I consider critical > (especially for persistent objects!) Many different types may implement the same interface, so I don't think it would be useful to assert a type in the interface. Of course, as an application specification you may *require* only one type implement an interface; in that case you can tag the interface with a 'type' value and do your own checks: class FooInterface(Interface.Base): """ blah blah """ def aMethod(self): """ blah blah """ class Foo: __implements__ = FooInterface, def aMethod(self): print 'barf!" FooInterface.setTaggedValue('type', type(Foo())) > * in a few spots, you speak of a class "realizing" an interface. > Is this the same as "implementing" an interface? If so, > why not use the same terminology; if not, what's the difference? they are synonymous, I'll switch it all to 'implements'. Thanks! -Michel