Согласно вашему импорту, ListObject
и StripeListObject
относятся к одному и тому же типу: они полностью взаимозаменяемы. Это означает, что если у вас есть какая-то функция, которая принимает StripeListObject
, было бы совершенно правильно передать ListObject
или наоборот. Обратите внимание, что это также верно во время выполнения: во время выполнения StripListObject
просто просто переменная, которая ссылается на базовый класс ListObject
: «имя» переменной не меняет поведения во время выполнения.
Вот почему PyCharm говорит, что тип это ListObject
, когда вы наводите на него курсор: он смещается в сторону отображения исходного имени типа, а не псевдонима. Это хорошая вещь! Это помогает предотвратить случайное представление людей о том, что эти два типа различны (и отражает то, что происходит во время выполнения).
Я сильно подозреваю, что это поведение не настраивается: оно будет сбивающим с толку и, возможно, неправильным, если PyCharm будет вести себя как-то иначе.
Если вы хотите, чтобы PyCharm рассматривал ListObject
и StripeListObject
как два разных типа, вам нужно либо (a) создать новый класс с именем StripeListObject
(который, возможно, наследуется от ListObject
), либо ( б) сделать StripListObject
a NewType вместо псевдонима.