首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ClassSecurityInfo.declarePrivate()等作为Python装饰器

ClassSecurityInfo.declarePrivate()等作为Python装饰器
EN

Stack Overflow用户
提问于 2012-07-11 12:09:48
回答 1查看 110关注 0票数 0

declarePrivate() et.阿尔。Zope2风格的访问控制声明有没有现代的Python语法方法装饰器?

例如。

代码语言:javascript
运行
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-11 14:24:52

不,我们仍然坚持使用这种语法。

它们不能如此容易地转换为装饰器,因为它们是类级别的声明,而不是实际附加到方法。您需要在调用框架上玩一些卑劣的把戏,才能回到类声明和security对象,才能使其正常工作。

因此,有一个步骤是对security对象进行处理,将声明转换为Zope2可以识别的类属性;目前,这个步骤是由原型registerType调用自动完成的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11425403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档