Что означает квадратная скобка [] после имени класса? - PullRequest
5 голосов
/ 24 сентября 2019

Например,

class BasicTransitionFunction(TransitionFunction[GrammarBasedState]):
      ...

, где TransitionFunction - базовый класс BasicTransitionFunction, а GrammarBasedState - также имя класса.Я только знаю, что [] можно использовать для индексированных массивов.Что это значит здесь?

1 Ответ

1 голос
/ 24 сентября 2019

Это синтаксис для универсальных типов.Как сказал @Sraw, это означает, что TransitionFunction является универсальным типом.Например, List является универсальным типом, поэтому вы можете иметь List[Int].

Это та же идея, что и для шаблонов C ++ (например, std::vector<int>).

Так что здесь BasicTransitionFunction является подклассом TransitionFunction между GrammarBasedState с.

...