gpt4 book ai didi

python - 距离字符串的 dateutil.parser.parse() ?

转载 作者:行者123 更新时间:2023-11-28 20:53:39 25 4
gpt4 key购买 nike

有人知道一个Python包,它是距离字符串的dateutil吗?如果有类似以下功能的东西那就太好了:

>>> from awesome_dist_module import Distance
>>> d = Distance("100 ft")
>>> d.meters
30.48
>>> d = Distance("100 feet")
>>> d.meters
30.48
>>> d.miles
0.0189393939

关键不在于转换,而在于能够传入表示某种测量值的字符串,并在不知道字符串中是什么测量值的情况下返回您选择的另一种测量值的浮点值。

有什么吗?

最佳答案

这是我为您编写的,但您可以根据需要扩展它:

class Distance(object):

METER = 1
FOOT = 0.3048
MILE = 1609.344
INCH = 0.0254
UNITS = {'meters': METER,
'mts': METER,
'mt': METER,
'feet': FOOT,
'foot': FOOT,
'ft': FOOT,
'miles': MILE,
'mls': MILE,
'ml': MILE,
'inch': INCH,
}
def __init__(self, s):
self.number, unit = s.split()
self._convert(unit)

def _convert(self, unit):
self.number = float(self.number)
if self.UNITS[unit] != 1:
self.number *= self.UNITS[unit]

@ property
def meters(self):
return self.number

@ meters.setter
def meters(self, v):
self.number = float(v)

@ property
def miles(self):
return self.number / self.MILE

@ miles.setter
def miles(self, v):
self.number = v
self._convert('miles')

@ property
def feet(self):
return self.number / self.FOOT

@ feet.setter
def feet(self, v):
self.number = v
self._convert('feet')

@ property
def inch(self):
return self.number / self.INCH

@ inch.setter
def inch(self, v):
self.number = v
self._convert('inch')

一些例子:

>>> d = Distance('1302.09029321 mts')
>>> d.meters
1302.09029321
>>> d.feet
4271.949780872703
>>> d.inch
51263.39737047244
>>> d.miles
0.8090813978925575
>>> d.miles = 1
>>> d.meters
1609.344
>>> d.feet
5280.0
>>> d.inch = .0002
>>> d.inch
0.00019999999999999998
>>> d.feet
1.6666666666666664e-05
>>> d.meters
5.08e-06
>>> d.miles
3.156565656565656e-09
>>> d.feet = 1
>>> d.meters
0.3048
>>> d.miles
0.0001893939393939394

编辑:添加 setter

关于python - 距离字符串的 dateutil.parser.parse() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3943752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com