модуль Python "строка"? - PullRequest
       8

модуль Python "строка"?

8 голосов
/ 10 сентября 2011

Итак, я читаю этот старый модуль примерно 2002 года, и в нем есть строка «строка импорта». Требовал ли Python, чтобы вы явно импортировали строковый модуль, чтобы иметь возможность использовать переменные строкового типа или что-то еще? Я не вижу, чтобы это использовалось так в коде:

string.something

Ответы [ 4 ]

5 голосов
/ 06 апреля 2017

Модуль string содержит набор полезных констант , таких как ascii_letters и digits, и по этой причине модуль часто все еще импортируется.

4 голосов
/ 10 сентября 2011

Если вы видите import string, но никогда не видите string.something, кто-то просто забыл удалить неиспользуемый импорт.

В то время как * использовал некоторые вещи в stringкоторые теперь являются стандартными методами str объектов, вам все равно нужно было либо

  1. поставить их перед string. после импорта библиотеки, либо
  2. использовать синтаксис from string import <whatever>.

Как правило, единственные случаи, когда вы видите что-то правильно импортированное, но никогда не "явно используемое", это from __future__ import with_statement или тому подобное - триггеры совместимости вперед / назад, используемые Python для новых возможностей языка.

0 голосов
/ 10 сентября 2011

Как сказал Амбар, импорт кажется избыточным, и RoeeeK также прав, говоря, что большинство функций модуля string являются строковыми методами, то есть вы можете делать "foobar".method() вместо string.function("foobar").Однако иногда все же полезно явно импортировать модуль;например, в случае обратных вызовов:

map(string.strip, [' foo ', ' bar ']).

Обратите внимание, что вышеприведенное также может быть достигнуто с помощью [chunk.strip() for chunk in [' foo ', ' bar ']], поэтому импорт string фактически не требуется в этом случае.

0 голосов
/ 10 сентября 2011

хорошо, в старых версиях строковый модуль действительно был гораздо более полезен, но в последних версиях большинство функций строкового модуля доступны также как строковые методы.

эта страница даст вам лучший вид: http://effbot.org/librarybook/string.htm

...