需要数量 python 包中所有可用单位的列表

Need a list of all units available in quantities python package

我正在尝试获取 python 数量包中预定义的所有单位的列表。像这样:

from quantities import units as u

myList = u.length.list(everything defined with UnitLength)

结果将是:

myList = ['m','meter','metre,'mi','au',...]

我想对他们在包中定义的所有单位类型执行此操作。知道如何在不解析实际源代码的情况下做到这一点吗?

这个有用的模块可以帮助您:https://pypi.python.org/pypi/units

from quantities import units

unit_symbols = [u.symbol for _, u in units.__dict__.items()
    if isinstance(u, type(units.deg))]

查看文档,也许这个列表是导出的。

我认为这符合您的要求:

from quantities import units as u

myList = [unit for unit in dir(u.length) 
          if type(getattr(u.length, unit)) is u.UnitLength]

缺点是它不适用于其他单位类型,因为您需要知道每个单位的类型。

Yakym,反响很好。 thegoodson,根据您是否需要缩写版本或非缩写版本,使用第一个(在 Yakim 的示例中转储到 _)来获取非缩写列表。我想一个更完整的方法(同时获得)是:

from quantities import units as u

unit_symbols = [foo.symbol for _, foo in u.__dict__.items() if isinstance(foo, type(u.m))]
unit_names = [bar for bar, foo in u.__dict__.items() if isinstance(foo, type(u.m))]