首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编辑tipfy中现有实体的适当方法

编辑tipfy中现有实体的适当方法
EN

Stack Overflow用户
提问于 2010-07-31 17:22:08
回答 1查看 217关注 0票数 0

我正在使用PersonEditHandler类在tipfy中编辑Person实体。我已经形成了get()和post()方法,但是当我引用self.person (为了检查get方法是否通过键找到了现有的person )时,我得到了一个'object‘没有属性’错误。

这是因为我从未在init方法中初始化它,因为我是从和Jinja2Mixin继承的。然而,当我重写init时,我会得到另一个错误:'TypeError:init__()只需要一个参数(3个给定)‘。

以下是代码:

代码语言:javascript
复制
class PersonEditHandler(RequestHandler, Jinja2Mixin): 
    def __init__(self): 
        PersonEditHandler.__init__(self) 
        # ...or 'super(PersonEditHandler, self).__init__()' 
        self.person = None 

我是不是因为多重继承而有麻烦?在tipfy中编辑检索到的记录而不创建新记录的最佳方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-08-01 17:04:00

我建议不要使用__init__,而是添加一个class属性:

代码语言:javascript
复制
class PersonEditHandler(RequestHandler, Jinja2Mixin): 
    person = None

这样,当您访问一个从未在特定实例self.person上设置的self时,它将服从于类,您将按需要获得None;当您设置self.person时,它将按需要在实体上设置它。

一般来说,混合继承是可以的,但是它可能会给__new____init__带来一些模糊的问题,正如您已经注意到的(老实说,我不知道哪个类在这里抱怨收到了三个参数……尽管如果您展示了完整的跟踪功能,那么处理这个问题会更简单;-)。

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

https://stackoverflow.com/questions/3379084

复制
相关文章

相似问题

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