是什么让 pylint 认为我的类是抽象的?

2023-11-21

据我了解,Python(2.5.2)并不真正支持抽象类。为什么 pylint 抱怨这个类是“抽象类而不是引用?”它会为任何具有以下功能的类执行此操作吗NotImplementedError thrown?

我将每个类都放在自己的文件中,所以如果是这种情况,我想我别无选择,只能抑制此消息,但我希望也许有另一种方法可以解决它。

"""Package Repository interface."""


class PackageRepository(object):
    """Package Repository interface."""

    def __init__(self):
        self.hello = "world"

    def get_package(self, package_id):
        """
        Get a package by ID.
        """
        raise NotImplementedError( \
                "get_package() method has not been implemented")

    def get_packages(self):
        """
        Get all packages.
        """
        raise NotImplementedError( \
                "get_packages() method has not been implemented")

    def commit(self):
        """
        Commit all changes.
        """
        raise NotImplementedError( \
                "commit() method has not been implemented")

    def do_something(self):
        """
        Doing something.
        """
        return self.hello

EDIT

也许我应该澄清一下。我意识到这是一个抽象类,我很想使用abstract关键字,但据我了解,这在Python中都不重要(至少在我当前使用的版本中),所以我没有费心做任何有趣的抽象技巧(像那些在这里找到)并简单地将其排除在外。

我很惊讶地发现 pylint 意识到这本身就是一个抽象类。是什么让 pylint 确定这是一个抽象类?难道只是单纯的寻找NotImplementedError被扔到某个地方?


FWIW,引发 NotImplementedError 足以使 pylint 认为这是一个抽象类(这是绝对正确的)。来自 logilab.org/card/pylintfeatures:W0223:方法 %r 在类 %r 中是抽象的,但未被重写 当抽象方法(即 raise NotImplementedError)在具体类中未被重写时使用。 – 托比斯克 2 小时前

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是什么让 pylint 认为我的类是抽象的? 的相关文章

随机推荐

  • 在 php 中将关联数组转换为其值的简单数组

    我想转换数组 Array category gt category post tag gt post tag nav menu gt nav menu link category gt link category post format g
  • 如何在 C#/.NET 中查找本地计算机的 FQDN?

    如何在 C 中获取本地计算机的 FQDN 注意 此解决方案仅在针对 NET 2 0 及更高版本 框架时有效 using System using System Net using System Net NetworkInformation
  • Google电子表格api请求的身份验证范围不足

    我正在制作一个脚本 在 Nodejs 上使用以下脚本从 google 电子表格读取数据 var url oauth2Client generateAuthUrl access type offline approval prompt for
  • 在 JavaFX 中动态添加 CSS 样式表

    我想添加一个位于文件系统某处的 CSS 文件 目的是编写一个应用程序 用户可以在其中动态添加 JavaFX CSS 文件 由任何人创建并位于任何地方 我尝试了类似的方法 仅用于测试 看看动态添加的 CSS 文件是否有效 public cla
  • Android 将项目添加到全局上下文菜单

    当您长按 Android 中的某个内容时 会出现一个上下文菜单 我想为所有人添加一些内容到这个上下文菜单中TextViews在系统中 例如 系统通过复制和粘贴来执行此操作 我想添加我自己的 并让它出现在每个应用程序中 在您的文件 andro
  • 任务“:app:desugarDebugFileDependencies”执行失败

    我正在尝试运行 Flutter 应用程序 但不断在控制台中获取以下输出 Launching lib main dart on Android SDK built for x86 in debug mode FAILURE Build fai
  • Django 中的条件包含标签

    我遇到了 Django 模板系统非常奇怪的行为 我有一个模板文件 即test html 它递归地包含自身 include test html 当然 这样的模板没有机会被渲染 因为没有完成条件 好的 让我们尝试以下操作 if test fal
  • 按照设计,为什么在声明委托类型时必须指定参数名称?

    为什么必须指定参数名称x如下 public delegate void XXX int x 声明委托类型时 对我来说 参数名称x未使用 因此如果我们可以重写如下会更简单 public delegate void XXX int 请让我知道为
  • 如何停止Android应用程序中的所有工作线程

    如何在不停止主线程的情况下停止Android应用程序中所有正在运行的工作线程 有这方面的例子吗 其实线程有方法stop 因此您可以检查所有工作线程并在每个线程上调用此方法 问题是 从哪里获取工作线程列表 更好的解决方案是将此列表存储在应用程
  • 在 C++ 中将双精度数转换为字符串

    我在尝试将双精度字符串转换为 C 字符串时遇到一些问题 这是我的代码 std string doubleToString double val std ostringstream out out lt lt val return out s
  • 如何在 Linux 服务器中安排 R 脚本 Cronjob? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 这个问题似乎不是关于主要由程序员使用的特定编程问题 软件算法或软件工具 如果您认为该问题与主题相关另一个 Stack Exchange 站点 您可以发表评论来解释问题可以在哪里得到解
  • 在发布模式下在 .NET 中进行调试

    前段时间我读过一篇关于 CLR 的文章 其中作者表明 如果项目以 DEBUG 模式编译 则在每个操作符之前都会出现一个 NOP 命令 从而允许调试代码 然而 今天我发现我们也可以在发布模式下进行调试 请帮助理解其中的区别 调试 net 代码
  • 使用 TCPIP 的多节点 docker 环境中的 Hazelcast

    我目前正在努力解决以下问题 我有一个 Java EE 应用程序 它应该能够在集群中运行 它确实如此 对于节点之间的数据交换 我使用 Hazelcast 3 3 3 由于我们的客户害怕 UDP 我们使用 TCP 所以我为每个节点配置 3 个
  • JDK 11.javax.net.ssl.SSLPeerUnverifiedException:对等点未经过身份验证

    我正在将我们的平台迁移到 JDK 11 其中一项服务在调用 graph facebook com API 时出现以下问题 org springframework web client ResourceAccessException GET
  • Material UI 重写样式并增加了特异性

    如何覆盖具有高特异性的类的规则 例如 MuiAccordionSummary content Mui expanded类中的手风琴摘要 const useStyles makeStyles gt expanded marginBottom
  • Mvvm交叉对话框

    我目前正在研究所有可能的解决方案 以便能够在用户需要做出决定时通知用户 即弹出对话框 这是 MVVM 模式的常见问题 我正在尝试为 MvvmCross 框架解决它 可能的解决方案可能是 自定义 MvxPresenter 以能够显示对话框 但
  • 使用 Qml/Qt 进行 https POST / GET

    最近我正在使用 Qt Qml 开发诺基亚手机 我必须向给定的 HTTPS Url 发出 POST 请求 我正在使用 QML 并尝试用 Javascript 来完成它 但没有任何运气 有人对此有什么想法吗 可以在 QML 中使用 Javasc
  • NSUserDefaults。 setValue 有效,setBool 不行

    我尝试在 NSUserDefaults 中存储一些设置 但该应用程序似乎不会存储 setBool 值 这有效 NSUserDefaults standardUserDefaults setValue hello forKey test NS
  • 单击 listViewItem 时显示带有单选按钮的警报对话框

    我有一个 listView 其中有 2 个项目 这两个项目是 秒 和 分钟 当我按 秒 时 我希望打开一个警报对话框并显示 5 10 15 秒 当我按分钟时也一样 像这样的东西 但我在实施它时遇到了困难 因为我不太了解它是如何工作的 这是我
  • 是什么让 pylint 认为我的类是抽象的?

    据我了解 Python 2 5 2 并不真正支持抽象类 为什么 pylint 抱怨这个类是 抽象类而不是引用 它会为任何具有以下功能的类执行此操作吗NotImplementedError thrown 我将每个类都放在自己的文件中 所以如果