PhysicalType#
- class astropy.units.PhysicalType(unit, physical_types)[源代码]#
基类:
object
表示在尺寸上与一组单位兼容的物理类型。
此类的实例应通过以下两种方式之一进行访问
get_physical_type
或使用physical_type
单位的属性。此类不打算在用户代码中直接实例化。有关物理类型的列表,请参见
astropy.units.physical
。- 参数:
笔记
物理类型将被视为等同于
PhysicalType
实例(推荐)或包含物理类型名称的字符串。不建议在包中使用后一种方法,因为某些物理类型的名称将来可能会更改。为了保持向后兼容性,如果两个物理类型名称用劈开分隔,则两个物理类型名称可以包括在一个字符串中(例如,
"momentum/impulse"
)。物理类型的字符串表示可以包括下划线而不是空格。实例
PhysicalType
实例可以通过physical_type
单位的属性。>>> import astropy.units as u >>> u.meter.physical_type PhysicalType('length')
PhysicalType
实例也可以通过调用get_physical_type
。此函数将接受单位、包含物理类型名称的字符串或数字1。>>> u.get_physical_type(u.m ** -3) PhysicalType('number density') >>> u.get_physical_type("volume") PhysicalType('volume') >>> u.get_physical_type(1) PhysicalType('dimensionless')
一些单元在尺寸上与多种物理类型兼容。帕斯卡是用来表示压力和应力的,但单位分解等同于能量密度。
>>> pressure = u.get_physical_type("pressure") >>> pressure PhysicalType({'energy density', 'pressure', 'stress'}) >>> 'energy density' in pressure True
可以针对其他物理类型对象或可能包含物理类型名称的字符串测试物理类型是否相等。
>>> area = (u.m ** 2).physical_type >>> area == u.barn.physical_type True >>> area == "area" True
启用乘法、除法和幂运算,以便可以将物理类型用于量纲分析。
>>> length = u.pc.physical_type >>> area = (u.cm ** 2).physical_type >>> length * area PhysicalType('volume') >>> area / length PhysicalType('length') >>> length ** 3 PhysicalType('volume')
也可以使用包含物理类型名称的字符串来执行。
>>> "length" * area PhysicalType('volume') >>> "area" / length PhysicalType('length')
未知的物理类型被标记为
"unknown"
。>>> (u.s ** 13).physical_type PhysicalType('unknown')
对于未知的物理类型,也可以执行量纲分析。
>>> length_to_19th_power = (u.m ** 19).physical_type >>> length_to_20th_power = (u.m ** 20).physical_type >>> length_to_20th_power / length_to_19th_power PhysicalType('length')