Существуют ли какие-либо типы текста, где `isspace ()` не обнаружит пробелы, включая текст, обработанный за пределами python? - PullRequest
0 голосов
/ 13 апреля 2020

Я заметил в некотором коде Python, который имеет дело с текстом, не обработанным в Python, они не используют стандартную встроенную isspace(). Они используют некоторые другие виды фильтрации.

Пример здесь

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

Мне интересно, есть ли сценарий ios, где isspace() будет не идентифицировать пробел из текста, возможно, текст обработан за пределами python? Если нет, какой метод будет?

1 Ответ

2 голосов
/ 13 апреля 2020

В этом конкретном c случае пользовательская реализация обнаруживает меньше символов в качестве пробела, чем , что делает встроенная cpython реализация (из Где полная реализация python isspace () ). Причина этого неизвестна, не зная деталей из проекта, на который вы ссылаетесь - сообщение о фиксации за пять месяцев go, когда код был добавлен, не указывает, что есть какая-то конкретная c причина для включения их собственного версия - это, вероятно, из-за незнания того, что метод isspace существует.

У вас обычно нет полного списка методов из стандартной библиотеки в вашей голове, и вы будете время от времени переопределять их. В этом случае его, вероятно, (не зная причины его добавления, мы можем только догадываться) можно смело заменить встроенной версией. Однако у них может быть причина для более узкой реализации.

...