import abc
class NotImplementedError(Exception):
pass
class Piece(metaclass=abc.ABCMeta):
@abc.abstractmethod
def move(self, **kargs):
raise NotImplementedError
class Queen(Piece):
def move(self, square):
# Specific implementation for the Queen's movements
pass
class King(Piece):
pass
# Allows you to create an instance of the Queen class
queen = Queen()
# Does not allow you to create an instance of the Queen class,
# because the abstract method move() is not implemented.
king = King()