首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在Python中调用父类方法时会提供两个参数

为什么在Python中调用父类方法时会提供两个参数
EN

Stack Overflow用户
提问于 2018-04-11 09:55:57
回答 1查看 29关注 0票数 0

我尝试从ParentSerializer调用cleanse方法,但从ChildSerializer调用,如最后一行所示。

代码语言:javascript
复制
class ParentSerializer(models.ModelSerializer):
    def cleanse(self):
        if hasattr(self, 'initial_data'):
            val1 = self.initial_data['name']
            val2 = self.initial_data['age']
            val3 = self.initial_data['city']
        return self.initial_data

class ChildSerializer(GenericSerializer):
    def is_valid(self, raise_exception=False):
        if hasattr(self, 'initial_data'):
            super(ChildSerializer, self).cleanse(self)

错误:

代码语言:javascript
复制
TypeError: cleanse() takes 1 positional argument but 2 were given

为什么这不起作用?

EN

回答 1

Stack Overflow用户

发布于 2018-04-11 10:00:23

将最后一行替换为

代码语言:javascript
复制
super(ChildSerializer, self).cleanse()

你不需要self,超级调用引用你的父类并充当它。

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

https://stackoverflow.com/questions/49765310

复制
相关文章

相似问题

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