मैं समझता हूँ कि सेकंड और माइक्रोसेकंड शायद दक्षता कारणों के लिए datetime.timedelta
में अलग से प्रतिनिधित्व कर रहे हैं, लेकिन मैं सिर्फ इस सरल समारोह लिखा है:गायब datetime.timedelta.to_seconds() -> पायथन में तैरते हैं?
def to_seconds_float(timedelta):
"""Calculate floating point representation of combined
seconds/microseconds attributes in :param:`timedelta`.
:raise ValueError: If :param:`timedelta.days` is truthy.
>>> to_seconds_float(datetime.timedelta(seconds=1, milliseconds=500))
1.5
>>> too_big = datetime.timedelta(days=1, seconds=12)
>>> to_seconds_float(too_big) # doctest: +ELLIPSIS
Traceback (most recent call last):
...
ValueError: ('Must not have days', datetime.timedelta(1, 12))
"""
if timedelta.days:
raise ValueError('Must not have days', timedelta)
return timedelta.seconds + timedelta.microseconds/1E6
यह time.sleep
या select.select
के लिए एक मूल्य गुजर जैसी चीजों के लिए उपयोगी है। datetime.timedelta
इंटरफ़ेस के इस हिस्से की तरह कुछ क्यों नहीं है? मुझे कुछ कोने का मामला याद आ रहा है। समय प्रतिनिधित्व में इतने सारे गैर-स्पष्ट कोने के मामले लगते हैं ...
मैंने कुछ परिशुद्धता पर उचित शॉट रखने के लिए दिन को खारिज कर दिया (मैं वास्तव में गणित एटीएम को काम करने के लिए बहुत आलसी हूं, इसलिए ऐसा लगता है एक उचित समझौता ;-)।
प्रश्न क्या है? –
इसे उकसाया - यह सोचकर कि क्या कोई कारण है कि यह इंटरफ़ेस में शामिल नहीं है। – cdleary
यह https://stackoverflow.com/questions/21414639/convert-timedelta-to-floating-point का डुप्लिकेट दिखता है जिसका एक बेहतर उत्तर है। – outofculture