【问题标题】:What should when a parent has a static class and a child does not?当父母有一个静态类而孩子没有时应该怎么办?
【发布时间】:2011-12-12 04:00:16
【问题描述】:

我的代码如下所示:

Class Parent:
    def someMethod(self):
        return 42

Class Child(Parent):
    def someMethod(self):
        print self.answer

父级有一个可以是静态的方法,并且(为了摆脱 Pylint 警告)我想添加一个 @staticmethod 装饰器,但我想删除 self 作为参数。这意味着 Parent 和 Child 有不同的输入参数。除了保留代码原样之外,还有什么好的方法吗?

【问题讨论】:

  • Child 是否意味着继承自 Parent?
  • “除了让代码保持原样之外,还有什么好的方法吗?” - 现在的代码并不能反映您所描述的内容。一方面(见@Caspar评论)你错过了继承信息,然后你没有在两者中的任何一个中定义静态方法,然后......也许你粘贴了错误的代码sn-p?

标签: python class inheritance methods


【解决方案1】:

如果您希望能够在需要 Parent 时传递 Child,则覆盖方法应接受与父方法相同的参数列表。碰巧这个特定的父实现方法可以被设为静态。

在父级中使用 # pylint: disable=X0123(替换为适当的警告代码)来禁用 lint 警告。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-07
    • 1970-01-01
    • 2017-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多