Pint 的“Quantity”和“PlainQuantity”有什么区别?

问题描述 投票:0回答:1

我的 IDE(Pyright 语言服务器提供的类型检查)不喜欢我将

pint.Quantity
实例传递给带有
pint.Quantity
:

类型提示的函数
from pint import Quantity

def get_units(quantity: Quantity):
   return quantity.units

get_unit(Quantity(value=1, units="m"))  # IDE complains here

我的语言服务器是这样说的:

Argument of type "PlainQuantity[Any]" cannot be assigned
to parameter "quantity" of type "Quantity" in function
"get_unit" [E]

我的问题是:什么是

PlainQuantity
?为什么
Quantity
不返回
Quantity
的实例?我是不是做错了什么?

python python-typing pyright pint
1个回答
0
投票

查看源代码,似乎他们将

PlainQuantity
导入为
Quantity
,我相信这就是为什么你的IDE在这里需要
PlainQuantity

from .facets.plain import PlainQuantity as Quantity

文档中,他们似乎更喜欢使用

pint.UnitRegistry.Quantity
来指代
Quantity

import pint

class MyQuantity(pint.UnitRegistry.Quantity):
    ...
© www.soinside.com 2019 - 2024. All rights reserved.