Два разных определения метода полосы в официальной документации Python (2.7.14rc1)? str.strip([chars]) против string.strip(s[, chars])

Когда я искал строку методом strip в официальной документации Python (2.7.14rc1), я обнаружил, что есть два определения. Это str.strip([chars]) и string.strip(s[, chars])

Мой вопрос: каковы различия между двумя определениями? Какой из них я должен следовать?

str.strip([chars]) находится в разделе 5. Встроенные типы: https://docs.python.org/2/library/stdtypes.html#str.strip

string.strip(s[, chars]) находится в разделе 7. String Services:https://docs.python.org/2/library/string.html#string.strip


person Banghua Zhao    schedule 15.09.2017    source источник


Ответы (2)


Между этими двумя методами нет функциональных различий, кроме того факта, что string.strip() требует вызова дополнительного импорта (import string).

Кроме того, string.strip() не включен в Python 3, а .strip() (метод, воздействующий непосредственно на объект str) встречается чаще, чем string.strip().

Кроме этого, вы можете использовать все, что захотите.

person Jerrybibo    schedule 15.09.2017
comment
Ой! Чтобы использовать string.strip(s[, chars]), мы сначала используем import string. Затем к первому аргументу s применяется метод strip(s[, chars]). А в Python 3 string.py не включается, и мы просто применяем метод полосы непосредственно к встроенному str тип - person Banghua Zhao; 15.09.2017
comment
@banghuazhao Да, но в Python 3 string.py все еще существует - просто они избавились от метода string.strip(). :) - person Jerrybibo; 15.09.2017

Поскольку strip() доступен как метод для встроенного типа str , вы можете просто использовать это без импорта модуля string.

И если вы посмотрите на код, вы сможете увидеть, что string.strip() все еще использует str.strip() под капотом.

person Eugene Yarmash    schedule 15.09.2017