В этом случае: просто проигнорируйте это предупреждение.
Я часто обнаруживал, что PyCharm не очень хорош с метаклассами - и __subclasses__
- это метод метакласса.
В вашем конкретном случае: PyCharm использует типизированные с следующим определением :
class type(object):
...
def __subclasses__(self: _TT) -> List[_TT]: ...
...
Однако PyCharm каким-то образом разрешает это в вашем примере до List[type]
вместо правильногоList[Base]
.Таким образом, Base.__subclasses__()[0]
имеет «выведенный тип» type
, и поскольку type
не имеет атрибута x
, он сообщает о доступе как о «неразрешенном».
Но это недостаток PyCharm, а не ваш код.