What is the shortest / most elegant way to implement the following Scala code with an abstract attribute in Python?
abstract class Controller {      val path: String  }   A subclass of Controller is enforced to define "path" by the Scala compiler. A subclass would look like this:
class MyController extends Controller {      override val path = "/home"  } 
                from abc import ABCMeta, abstractmethod   class A(metaclass=ABCMeta):     def __init__(self):         # ...         pass      @property     @abstractmethod     def a(self):         pass      @abstractmethod     def b(self):         pass   class B(A):     a = 1      def b(self):         pass   Failure to declare a or b in the derived class B will raise a TypeError such as:
TypeError: Can't instantiate abstract classBwith abstract methodsa
There is an @abstractproperty decorator for this:
from abc import ABCMeta, abstractmethod, abstractproperty   class A:     __metaclass__ = ABCMeta      def __init__(self):         # ...         pass      @abstractproperty     def a(self):         pass      @abstractmethod     def b(self):         pass   class B(A):     a = 1      def b(self):         pass 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With