type hint returns NameError: name 'datetime' not defined

user3848207

I have this function below;

def time_in_range(start, end, x):
    """Return true if x is in the range [start, end]"""
    if start <= end:
        return start <= x <= end
    else:
        return start <= x or x <= end

The function parameters are all datetime type. I want to add typing hint to the function. This is what I did;

def time_in_range(start: datetime, end: datetime, x: datetime) -> bool:
    """Return true if x is in the range [start, end]"""
    if start <= end:
        return start <= x <= end
    else:
        return start <= x or x <= end

I get the error NameError: name 'datetime' is not defined. What is the proper way to add typing for this function?

I am using python v3.7

Pedro Rodrigues

You need to import datetime, or use a string (remember, it is just an hint).

>>> def f(x: datetime):
...     pass
...
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'datetime' is not defined
>>> def f(x: 'datetime'):
...     pass
...
>>>
>>> from datetime import datetime
>>> def f(x: datetime):
...     pass
...
>>>

Python 3.7.4

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related