問題:[self._oun(upsplit[.....]
以下のコードの関数は、単語 (文字列) または bool (FALSE) を返します。+ 演算子による連結が発生すると、bool (FALSE など) と文字列を連結しようとするため、例外 (TypeError、bool と str の連結) で失敗します。文字列が返されると、完全に正常に機能します。
上記の問題を処理するために、Pythonic の方法でコードを変更するにはどうすればよいですか? このコードの前にifステートメントを置いて戻り値をチェックし、2つのelseステートメントを入れようとしました。
return ' '.join(upsplit[:word-1] +
[self._oun(upsplit[word-1], 1) +
'-' + upsplit[word] + '-']) + \
' '.join(upsplit[(word+1):])
編集:
FALSE が返された場合は、戻り値ではなく upsplit[word] を追加したいだけです (bool FALSE になります)。この関数は TRUE を返さないことに注意してください。変更された文字列を返すか、FALSE を返します。FALSE が返された場合は、upsplit[word] に格納されている元の文字列を追加する必要があります。