只是关于 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”的文件中,逐行显示了两个文件之间的差异。但是我注意到,如果我只打印“结果”而不使用 .join(),编译器会返回一条包含内存地址的消息。在尝试不使用 .join()将结果写入文件后,编译器通知我在 .join() 方法中只能使用字符串和字符缓冲区,而不是生成器对象。因此,根据我引用的所有证据,如果我错了,请纠正我:
result = diff.compare(file1.read(),file2.read())
<---- 结果是生成器对象?result
是一个字符串列表,result
它本身就是对第一个字符串的引用?.join()
获取一个内存地址并指向第一个,然后遍历该结构中字符串的其余地址?生成器对象是返回指针的对象吗?
如果我的问题不清楚,我很抱歉,但我基本上是想问问蟒蛇老兵我的推论是否正确。我的问题不是关于可观察的结果,而是关于 python 的内部工作原理。我感谢您的所有帮助。