相关疑难解决方法(0)

Python中的抽象属性

在Python中使用抽象属性实现以下Scala代码的最短/最优雅的方法是什么?

abstract class Controller {

    val path: String

}
Run Code Online (Sandbox Code Playgroud)

Controller强制使用子类来定义Scala编译器的"路径".子类看起来像这样:

class MyController extends Controller {

    override val path = "/home"

}
Run Code Online (Sandbox Code Playgroud)

python oop abstract-class scala

58
推荐指数
10
解决办法
4万
查看次数

Python中字段的NotImplementedError等效项

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

class Base:
    def foo(self):
        raise NotImplementedError("Subclasses should implement this!")
Run Code Online (Sandbox Code Playgroud)

然后,如果您忘记覆盖它,您会收到一个很好的提醒异常.是否有相同的方法将字段标记为抽象?或者在类docstring中说明它你能做什么?

起初我以为我可以将字段设置为NotImplemented,但是当我查看它的实际内容(丰富的比较)时,它似乎是侮辱性的.

python abstract-class

47
推荐指数
3
解决办法
3万
查看次数

在python中引发异常的正确方法?

这是简单的代码:

import sys

class EmptyArgs(StandardError):
    pass

if __name__ == "__main__":
    #first way to raise exception
    if len(sys.argv) == 1:
       raise EmptyArgs     
    #second way to raise exception
    if len(sys.argv) == 1:
       raise EmptyArgs()
Run Code Online (Sandbox Code Playgroud)

哪种方式"更"正确?两者都有效.
注意:在我的实际代码中,异常与我声明的完全相同:没有消息和参数.

python exception

19
推荐指数
1
解决办法
7737
查看次数

标签 统计

python ×3

abstract-class ×2

exception ×1

oop ×1

scala ×1