declarePrivate() et.阿尔。Zope2风格的访问控制声明有没有现代的Python语法方法装饰器?
例如。
class EncryptedField(StringField):
"""
"""
security = ClassSecurityInfo()
# Something more nice here? like @private?
security.declarePrivate('get')
def get(self, instance, **kwargs):
value = ObjectField.get(self, instance, **kwargs)
if getattr(self, 'raw', False):
return value发布于 2012-07-11 14:24:52
不,我们仍然坚持使用这种语法。
它们不能如此容易地转换为装饰器,因为它们是类级别的声明,而不是实际附加到方法。您需要在调用框架上玩一些卑劣的把戏,才能回到类声明和security对象,才能使其正常工作。
因此,有一个步骤是对security对象进行处理,将声明转换为Zope2可以识别的类属性;目前,这个步骤是由原型registerType调用自动完成的。
https://stackoverflow.com/questions/11425403
复制相似问题