Котировки используются для различения конструкторов типового типа по сравнению с конструкторами уровня уровня продвигаемых типов.
Например:
{-# LANGUAGE DataKinds #-}
data Which = One | Two
myPick :: Which -- Type
myPick = One
type MyPick :: Which -- Kind
type MyPick = 'One
Кстати, аннотация вида вида type MyPick :: Which
недействителен Haskell, но он дает вам представление о соответствии между термином и уровнем типа. Самое близкое, что вам нужно для этого, необходимо включить другое расширение:
{-# LANGUAGE TypeFamilies #-}
type family MyPick :: Which where
MyPick = 'One
Вы можете использовать ссылку forward , используя имя string для еще не определенного класса Client
:
class Server():
def register_client(self, client: 'Client')
pass
from __future__ import annotations
импорт в оценку задержки аннотаций . Такое поведение, по-видимому, будет включено по умолчанию, как только Python 4.0 развернется. – Michael0x2a 27 July 2018 в 17:18