Я пробираюсь через несколько примеров и пришел с этим рабочим ответом - задача, поставленная в doctests:
def remove(sub, s):
"""
>>> remove('an', 'banana')
'bana'
>>> remove('cyc', 'bicycle')
'bile'
>>> remove('iss', 'Mississippi')
'Missippi'
>>> remove('egg', 'bicycle')
'bicycle'
"""
if sub not in s: return s # 1
from string import replace # 2
return replace( s, sub, '', 1) # 3
Как PyNoob, я хотел бы задать несколько вопросов, чтобы выяснить все эти вещи в сравнении с багажом, который я привез с собой из PHP.
На моей линии:
-
Это правильное место, чтобы принести модуль?
Есть ли приемлемый способ проверки загрузки модуля и его обработки?
2.
Это самый эффективный способ загрузки только тот метод, который я хочу?
3.
В целом, разве так вы бы решили эту конкретную проблему?
Полагаю, я тоже охотюсь за рулем против вашего опыта в "реальном мире". Строковый модуль настолько распространен, что вы, скорее всего, его все равно загрузите?
Если это так, как вы проверяете, загружен ли модуль?
Было бы довольно бессмысленно использовать исключения для обработки строкового модуля, который невозможно найти, потому что по умолчанию строка всегда будет доступна?
(ps взято из Обучение с Python ftw)
EDIT
ОК, для тех, кто интересуется, как было указано, мой вопрос введен в заблуждение, потому что я не смог понять, что в Python строка obj уже содержит метод replace ().
Это было вызвано тем, что я не смог сделать что-то вроде:
>>> dir("a string")
, который раскрыл бы все методы, включая «заменить»:
Итак, я мог бы продолжить это, набрав:
>>> "a string".replace.__doc__
Который изверг бы:
'S.replace (старый, новый [, количество]) ->
строка Возвращает копию строки S с
все вхождения подстроки старой
заменены на новые. Если опционально
указывается количество аргументов, только
первый подсчет случаев заменяется. '
Теперь, конечно, я знал, что этот метод replace () ДОЛЖЕН существовать где-то, но я еще не знал, как искать и открывать для себя - документы Python, откровенно говоря, слишком "слабо связаны" для меня. Спасибо за ответы - но я публикую это РЕДАКТИРОВАНИЕ на тот случай, если любой другой, столь же невежественный и ошеломленный, но желающий защитник Python должен наткнуться.