我有下面这个函数;

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

函数参数都是datetime类型.我想给函数添加输入提示.这就是我所做的;

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

我得到错误NameError: name 'datetime' is not defined.为这个函数添加类型的正确方法是什么?

我正在使用python v3.7.

推荐答案

你需要输入datetime,或者使用一个字符串(记住,这只是一个提示).

>>> 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

Python-3.x相关问答推荐

如何将多个字典合并到一个列中,并为不同的行使用相同的键

使用数据库将文件从Sharepoint下载到文件系统

在Python代码中包含NAN值时,以两个矩阵计算RMSE

如何在 python 中将带有时区信息的时间戳转换为 utc 时间

将自定义函数应用于 pandas 数据框的每一列

如何使用 Selenium Python 连续单击一个按钮直到另一个元素出现?

按字母顺序排序列表 (OrderFilter),条件是值为 '' 的条目位于列表 DRF 的末尾

如何将列表和字典逐行组合在一起

合并问卷中多列中的稀疏问题 - Pandas

spaCy 中的匹配模式返回空结果

从 h264 帧解析数据包时 PyAV 不一致

为什么 setattr 在绑定方法上失败

如何模拟 Django 模型对象(及其方法)?

如果一个失败,如何取消收集中的所有剩余任务?

在 Python 3 中获取所有超类

类型提示返回 NameError: name 'datetime' not defined

使用 asyncio 的多个循环

python中的绝对导入是什么?

首次使用后 zip 变量为空

如何更改 tkinter 文本小部件中某些单词的 colored颜色 ?