我有下面这个函数;

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相关问答推荐

一种基于绝对排序值的极框索引和列定位的Python方法

以某种方式分割字符串

我无法直接在 VSCode 中运行该程序,但可以使用 VScode 中的终端运行它

如何使用python将pdf文件的页面合并为单个垂直组合页面

在REPLACE INTO中引用变量会抛出sqlite3.OperationalError

三重奏:为什么频道被记录为使用async with,而不是with?

使用 Python 截断并重新编号对应于特定 ID/组的列

将逗号分隔的字符串类型系列转换为整数列表 pandas

过滤并获取数据框中条件之间的行

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

通过点和线计算CV2 Homography

避免重复连续字符但不包括一个特定字符的正则表达式

如何查找 tensorflow.python.data.ops.dataset_ops.MapDataset 对象的大小或形状,make_csv_dataset 的输出

如何确定一个类的元类?

if 语句中冒号的语法错误

如何将 SimpleGUI 与 Python 2.7 和 3.0 shell 集成

Python的max函数有多高效

Python 3 - Zip 是 pandas 数据框中的迭代器

在 linux mint 上安装 python3-venv 模块

Python 3.4 多处理队列比 Pipe 快,出乎意料