需要数量 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))]
我正在尝试获取 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))]