1. ホーム
  2. python

[解決済み] Pythonの抽象属性[重複]について

2022-09-04 10:53:20

質問

Pythonで抽象属性を持つ以下のScalaのコードを実装するための最短/最もエレガントな方法は何ですか?

abstract class Controller {

    val path: String

}

のサブクラスで Controller のサブクラスは、Scala コンパイラによって "path" を定義するように強制されます。サブクラスは次のようになります。

class MyController extends Controller {

    override val path = "/home"

}

どのように解決するのですか?

Pythonにはこのための組み込みの例外がありますが、実行時までその例外に遭遇することはないでしょう。

class Base(object):
    @property
    def path(self):
        raise NotImplementedError


class SubClass(Base):
    path = 'blah'