コードを変更するように求められる割り当てがあります。元の関数は次のとおりです。
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
ここで、パラメータ変換を追加するとします。これは、パラメータとして文字列を受け取り、ユーザーが指定した変換に従って文字列を返す関数です。関数呼び出しからtransformを省略した場合、入力ファイルの行は変更されずに書き込まれます。
これが私がこれまでに持っているものです:
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
ここからどこに進むべきかわかりません。入力ファイルの行を読み取ることになっていると思いますが、変換された行を書き込みます...または何か?