Pycharm类型提示不使用别名Import ZXY作为XYZ

2024-09-30 01:21:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下代码,Pycharm type提示没有使用我要导入的“别名”:

from stripe.api_resources.list_object import ListObject as StripeListObject

所以这个函数定义def my_func_name(subscription: StripeListObject, ...):应该在查看工具提示时读取my_func_name(subscription: StripeListObject, ...,而不是读取my_func_name(subscription: ListObject, ...):

你知道为什么会这样吗?我怎样才能强迫pycharm在查看类型提示时读取“别名”?你知道吗


Tags: 代码namefromapiobjectmytypelist
1条回答
网友
1楼 · 发布于 2024-09-30 01:21:56

根据您的导入,ListObjectStripeListObject引用完全相同的类型:它们完全可以互换。这意味着,如果您有一个函数接受StripeListObject,那么传入ListObject将是完全有效的,反之亦然。请注意,在运行时也是这样:在运行时,StripListObject只是一个引用底层ListObject类的变量:变量的“名称”不会更改运行时行为。你知道吗

这就是为什么当您将鼠标悬停在PyCharm上时,它会说类型是ListObject:它倾向于显示类型的原始名称,而不是别名。这是件好事!它有助于防止人们意外地认为这两种类型是不同的(并反映了运行时发生的情况)。你知道吗

我强烈怀疑这种行为是不可配置的:如果PyCharm以任何其他方式进行操作,这将是令人困惑的,而且可以说是错误的。你知道吗

如果希望PyCharm将ListObjectStripeListObject视为两种不同的类型,则需要(a)创建一个名为StripeListObject的新类(该类可能继承自ListObject),或者(b)使StripListObject成为NewType,而不是别名。你知道吗

相关问题 更多 >

    热门问题