Python と .join() メソッドに関する基本的な質問:
file1 = open(f1,"r")
file2 = open(f2,"r")
file3 = open("results","w")
diff = difflib.Differ()
result = diff.compare(file1.read(),file2.read())
file3.write("".join(result)),
上記のコード スニペットは、"results" というファイルに文字列形式で保存された適切な出力を生成し、2 つのファイルの違いを行ごとに示します。ただし、.join() を使用せずに単に「結果」を出力すると、コンパイラがメモリ アドレスを含むメッセージを返すことに気付きました。.join() を使用せずに結果をファイルに書き込もうとした後、.join() メソッドでは文字列と文字バッファーのみを使用でき、ジェネレーター オブジェクトは使用できないとコンパイラーから通知されました。したがって、私が提示したすべての証拠に基づいて、間違っている場合は訂正してください。
result = diff.compare(file1.read(),file2.read())
<---- 結果はジェネレーターオブジェクト?result
result
それ自体が最初の文字列への参照である文字列のリストですか?.join()
メモリアドレスを取得して最初のアドレスを指し、その構造内の文字列の残りのアドレスを反復処理しますか?ジェネレーターオブジェクトはポインターを返すオブジェクトですか?
私の質問が不明確である場合は申し訳ありませんが、基本的にはPythonのベテランに私の推論が正しいかどうかを尋ねたかった. 私の質問は、観察可能な結果についてではなく、Python の内部の仕組みについてです。皆様のご協力に感謝いたします。