用写一个根据计量单位换算的工具类
时间: 2023-12-07 21:04:32 浏览: 129
好的,这里是一个根据计量单位进行换算的工具类的示例代码,支持多种计量单位之间的转换:
```python
class UnitConverter:
def __init__(self):
self.conversion_table = {
'mm': {'cm': 0.1, 'm': 0.001, 'km': 0.000001},
'cm': {'mm': 10, 'm': 0.01, 'km': 0.00001},
'm': {'mm': 1000, 'cm': 100, 'km': 0.001},
'km': {'mm': 1000000, 'cm': 100000, 'm': 1000},
'g': {'kg': 0.001},
'kg': {'g': 1000},
'oz': {'g': 28.35},
'lbs': {'kg': 0.4536}
}
def convert(self, value, from_unit, to_unit):
if from_unit == to_unit:
return value
if from_unit not in self.conversion_table or to_unit not in self.conversion_table[from_unit]:
raise ValueError(f'无法完成 {from_unit} 到 {to_unit} 的转换')
conversion_factor = self.conversion_table[from_unit][to_unit]
result = value * conversion_factor
return result
```
上面的代码中,我们创建了一个 `UnitConverter` 类,并定义了一个转换表 `conversion_table`,其中包含了常见的计量单位之间的转换因子。然后,我们定义了一个 `convert` 方法,该方法接受需要转换的数值、原单位和目标单位作为参数,并返回转换后的结果。
在 `convert` 方法中,我们首先检查 `from_unit` 和 `to_unit` 是否相同。如果相同,直接返回原数值。如果不同,我们检查 `from_unit` 是否在 `conversion_table` 中,并且 `to_unit` 是否在 `from_unit` 的转换表中。如果没有找到转换因子,则抛出 `ValueError` 异常。
最后,我们将原始值乘以转换因子,并返回计算结果。这个工具类可以方便地用于不同计量单位之间的转换,如长度、重量等。
阅读全文