class Object: def __init__(self): self.attributes = {}
class NamedObject: def __init__(self, context): self.context = context
def getName(self, type): return self.context.attributes[type]
def setName(self, type, value): self.context.attributes[type] = value
def nameProperty(type): fget = lambda self: self.getName(type) fset = lambda self, value: self.setName(type, value) return property(fget, fset)
class Person(NamedObject):
firstname = nameProperty('firstname')
It looks like property can not be used as setter in views/adapters. Is that the problem? Or is there an other problem?
It doesn't have anything to do with views or adapters, or even Zope. :)
Properties only work properly on new style classes. Change the line "class NamedObject:" to "class NamedObject(object):" and it will work.
--
Benji York
Sr. Software Engineer
Zope Corporation
_______________________________________________
Zope3-users mailing list
[email protected]
http://mail.zope.org/mailman/listinfo/zope3-users
