[Zope-dev] [BlueBream] Referring to same interface using zope.schema.Object
    Joshua Immanuel 
    josh at hipro.co.in
       
    Fri Jul 22 09:23:17 EDT 2011
    
    
  
Hello Laurence,
On Fri, 2011-07-22 at 13:57 +0100, Laurence Rowe wrote:
> No, there are issues. Take this example:
> 
> >>> class ITest(Interface):
> ...  title = schema.TextLine()
> ...
> >>> ITest.names
> <bound method InterfaceClass.names of <InterfaceClass __main__.ITest>>
> >>> ITest.names()
> ['title']
> >>> ITest.description = schema.Text()
> >>> ITest.names()
> ['title']
> 
> The fields on an interface are not stored as attributes, but are
> accessible using item access, e.g: ITest['title']. You cannot assign
> that way though:
> 
> >>> ITest['description'] = schema.TextLine()
> Traceback (most recent call last):
>   File "<console>", line 1, in <module>
> TypeError: 'InterfaceClass' object does not support item assignment
> 
> Adding to an interface requires messing with the
> '_InterfaceClass__attrs' attribute of the dictionary and is
> discouraged. 
Thanks for enlightening me with this wonderful explanation. 
As Jacob mentioned, list(INode) in debug shell was very handy to debug.
-- 
Joshua Immanuel
HiPro IT Solutions Private Limited
http://hipro.co.in
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
Url : http://mail.zope.org/pipermail/zope-dev/attachments/20110722/f72135fc/attachment.bin 
    
    
More information about the Zope-Dev
mailing list