当前位置: 首页 > 面试题库 >

等价于Python中字段的NotImplementedError

欧镜
2023-03-14
问题内容

在Python 2.x中,当您要将一个方法标记为抽象时,可以这样定义它:

class Base:
    def foo(self):
        raise NotImplementedError("Subclasses should implement this!")

然后,如果您忘记覆盖它,则会收到一个很好的提醒异常。是否存在将字段标记为抽象的等效方法?还是在您可以做的所有工作中在类文档字符串中说明?

起初我以为可以将字段设置为NotImplemented,但是当我查看它的实际用途(进行大量比较)时,它似乎很脏。


问题答案:

是的你可以。使用@property装饰器。例如,如果您有一个名为“example”的字段,那么您将无法执行以下操作:

class Base(object):

    @property
    def example(self):
        raise NotImplementedError("Subclasses should implement this!")

运行以下命令将产生NotImplementedError您想要的结果。

b = Base()
print b.example


 类似资料:
  • 问题内容: 在Python中,您可以执行以下操作: 或这个: 在Go中,最简单的选项是: 这不允许您交换格式字符串中参数的顺序,而这需要对I18N进行。Go 确实 具有该软件包,这将需要以下内容: 这似乎是一条很长的路要走的错误消息。有没有更合理的选择,可以让我给出与顺序无关的字符串参数? 问题答案: 用 使用,实现您所需的格式化程序非常容易且紧凑。 输出(在Go Playground上尝试):

  • 问题内容: 我需要从一些文本文件中选择一些数字。我可以使用grep选择所需的行,但是不知道如何从行中提取数字。一位同事向我展示了如何使用Perl从bash中做到这一点: 但是,我通常使用Python而不是Perl进行编码。所以我的问题是,我可以用相同的方式使用Python吗?即,我可以将一些东西从bash传递到Python,然后直接将结果传递到stdout吗?…如果有道理。还是在这种情况下Perl

  • 问题内容: 这个问题可能背叛了一个误解,但是我很好奇Python世界的“ Tomcat”是什么。 我所有的Web编程经验都是Java(或Groovy),因此我认为是Java。当我想到制作一个基本的Web应用程序时,我想到了编写一些servlet,构建WAR文件并将其部署在Tomcat或另一个servlet容器中。 在Python中,假设我编写了一些能够响应HTTP请求的代码,我该怎么办?我将如何部

  • 问题内容: Golang 中python的chr()和ord()函数的等效项是什么? 问题答案: 支持它们作为简单转换: 输出(在Go Playground上尝试): 注意:您还可以将整数转换为基本上将整数解释为UTF-8编码值的: 将有符号或无符号整数值转换为字符串类型会产生一个包含该整数的UTF-8表示形式的字符串。有效Unicode代码点范围之外的值将转换为。

  • 问题内容: 我想为的系数找到最小二乘解 给定数组,和,长度为20。基本上,我在寻找与相等的2D多项式。 问题答案: 这是显示如何可以用于此任务的示例: 调整系数为: 请注意,和分别对应于和,并且它们接近,因为示例数据是使用创建的。

  • 问题内容: MySQL中的varchar(max)等价于什么? 问题答案: varchar的最大长度取决于MySQL中的最大行大小,即64KB(不包括BLOB): 但是,请注意,如果使用多字节字符集,则限制会更低: 这里有些例子: 最大行大小为65535,但是varchar还包括一个或两个字节来编码给定字符串的长度。因此,即使它是表中的唯一列,您实际上也无法声明最大行大小的varchar。 但是,