Ta klasa nie istnieje dopóki program Python nie zakończy wykonywania całego kodu wewnątrz bloku klasy, w tym definicji metod.
Wystarczy użyć ciąg dosłownego zamiast, jak zasugerowano w PEP 484:
class Interval(object):
def __sub__(self, other: 'Interval'):
pass
Należy pamiętać, że jest to całkowicie w porządku, aby odnieść się do tej klasy wewnątrz metodę:
class Interval(object):
def __sub__(self, other: 'Interval'):
Interval.do_something()
To jest tylko problem, jeśli chcesz go użyć w sygnaturze metody lub bezpośrednio w bloku klasy.