У меня есть задание, в котором меня просят изменить код. Исходная функция заключается в следующем:Использование lambdas в функции внутри функции
def selectivelyCopy(inputFile,outputFile,predicate):
linesCopied = 0
for line in inputFile:
if predicate(line):#test the line with the predicate
outputFile.write(line)
linesCopied+=1
inputFile.close()
return linesCopied
Теперь я предполагаю, чтобы добавить параметр преобразования, функцию, которая принимает в качестве параметра строку, а возвращает строку в соответствии с преобразованием указанного пользователем. Если в вызове функции исключено преобразование, строки из входного файла записываются без изменений.
Вот то, что я до сих пор:
def selectivelyCopy2(inputFile,outputFile,predicate, transform):
def transform(x = lambda x: x):
return(x)
linesCopied = 0
for line in inputFile:
if predicate(line): #test the line with the predicate
outputFile.write(line)
linesCopied+=1
inputFile.close()
return linesCopied
Я не уверен, куда двигаться дальше. Я думаю, что я должен прочитать строку входных файлов, но написать преобразованную строку ... или что-то еще?
Попробуйте запустить код. Время процессорного времени стоит меньше, чем у нас. Также пометьте как домашнюю работу, если это домашнее задание. – Shep
Я его запустил. Он просто работает, как будто определения не было. Нет ошибок. –
Извините за то, что вы указали очевидное, но ... вы запускаете код выше? Ничего лишнего? Вы _call_ свою функцию? – Veky