当父级有静态类而子级没有时应该怎么办?

发布于 2024-12-20 14:51:40 字数 304 浏览 0 评论 0原文

我的代码如下所示:

Class Parent:
    def someMethod(self):
        return 42

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

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

I have code that looks like this:

Class Parent:
    def someMethod(self):
        return 42

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

The parent has a method that could be static, and (to get rid of Pylint warnings) I want to add a @staticmethod decorator, but then I would want to remove self as an argument. That would mean the Parent and Child have different input arguments. Is there any good way to do this besides leaving the code as is?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

眉黛浅 2024-12-27 14:51:41

如果您希望能够在需要父级时传递子级,则重写方法应该接受与父级方法相同的参数列表。碰巧这个特定的父实现方法可以变成静态的。

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

If you want to be able to pass a Child when a Parent is expected, then the overriding method should accept the same argument list as the parent's method. It just happens that this specific Parent implementation that method could be made static.

Use a # pylint: disable=X0123 (replace with the appropriate warning code) in the parent to disable the lint warning.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文