Chỉ cần một câu hỏi cơ bản liên quan đến python và phương pháp .join():phát Python đối tượng và .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)),
Đoạn mã trên mang lại một kết quả đẹp được lưu trữ trong một tập tin gọi là "kết quả", trong định dạng chuỗi , cho thấy sự khác biệt giữa hai tệp theo từng dòng. Tuy nhiên tôi nhận thấy rằng nếu tôi chỉ in "kết quả" mà không cần sử dụng .join(), trình biên dịch trả về một thông báo bao gồm địa chỉ bộ nhớ. Sau khi cố gắng ghi kết quả vào tập tin mà không cần sử dụng .join(), tôi được trình biên dịch thông báo rằng chỉ có chuỗi và bộ đệm ký tự có thể được sử dụng trong phương thức .join() chứ không phải đối tượng máy phát. Vì vậy, dựa tắt của tất cả các bằng chứng cho thấy tôi đã viện dẫn, hãy sửa lại cho tôi nếu tôi sai:
result = diff.compare(file1.read(),file2.read())
< ---- Kết quả là một đối tượng phát?result
là danh sách các chuỗi, vớiresult
chính nó là tham chiếu đến chuỗi đầu tiên?.join()
lấy địa chỉ bộ nhớ và trỏ đến địa chỉ đầu tiên và sau đó lặp qua các địa chỉ còn lại của chuỗi trong cấu trúc đó?Đối tượng máy phát điện là đối tượng trả về con trỏ?
Tôi xin lỗi nếu câu hỏi của tôi không rõ ràng, nhưng về cơ bản tôi muốn hỏi các cựu chiến binh trăn nếu khoản khấu trừ của tôi là chính xác. Câu hỏi của tôi là ít hơn về các kết quả quan sát được, và nhiều hơn nữa về các hoạt động bên trong của python. Tôi đánh giá cao tất cả sự giúp đỡ của bạn.
Tin nhắn là gì? – Marcin
Bạn không có địa chỉ bộ nhớ; python cung cấp cho bạn một đại diện của một đối tượng, và mặc định cho các đối tượng tùy chỉnh là hiển thị kiểu và địa chỉ bộ nhớ của đối tượng. Vẫn còn một vật ở đó. –