首页 > 解决方案 > 是否有任何类型的文本“isspace()”不会检测到空格,包括在 python 之外处理的文本?

问题描述

我注意到在一些 Python 代码中,它们处理未在 Python 中处理的文本,它们不使用isspace()内置的标准。他们使用一些其他类型的过滤。

一个例子是here

https://github.com/huggingface/transformers/blob/master/src/transformers/data/processors/squad.py#L80

def _is_whitespace(c):
    if c == " " or c == "\t" or c == "\r" or c == "\n" or ord(c) == 0x202F:
        return True
    return False

我想知道是否有任何场景isspace()无法从文本中识别空格,也许是在 python 之外处理的文本?如果不是,那将是什么方法?

标签: pythonwhitespace

解决方案


在这种特定情况下,用户实现检测到的空白字符比内置 cpython 实现所检测到的要少(来自Python isspace() 的完整实现在哪里)。在不知道您链接到的项目的详细信息的情况下,这样做的原因是未知的 - 五个月前添加代码时的提交消息并未表明包含他们自己的版本的任何具体原因 - 这可能是由于不知道该isspace方法存在。

您通常没有完整的标准库方法列表,并且最终会不时地重新实现这些方法。在这种情况下,它可能(不知道添加它的原因,我们只能猜测)安全地被内置版本替换。不过,他们希望有一个更窄的实现可能是有原因的。


推荐阅读