Đó là sự khởi đầu. Thực tiễn không tốt để xác định các chuỗi dài hơn bên ngoài mã sử dụng chúng. Đó là cách tách dữ liệu và hành vi. Tùy chọn đầu tiên của bạn là để tham gia xâu lại với nhau mặc nhiên bằng cách làm cho họ tiếp giáp với nhau:
("This is the first line of my text, "
"which will be joined to a second.")
Hoặc với dòng kết thúc continuations, đó là một chút mong manh hơn, như công trình này:
"This is the first line of my text, " \
"which will be joined to a second."
Nhưng điều này không:
"This is the first line of my text, " \
"which will be joined to a second."
Xem sự khác biệt? Không? Vâng, bạn sẽ không khi nó là mã của bạn.
Nhược điểm để tham gia ngầm là nó chỉ hoạt động với chuỗi ký tự, chứ không phải với chuỗi được lấy từ biến số , vì vậy mọi thứ có thể có nhiều lông hơn khi bạn refactor. Ngoài ra, bạn chỉ có thể nội suy định dạng trên chuỗi kết hợp nói chung.
Ngoài ra, bạn có thể tham gia một cách rõ ràng bằng cách sử dụng toán tử nối (+
):
("This is the first line of my text, " +
"which will be joined to a second.")
Explicit là tốt hơn so với tiềm ẩn, như zen của python nói, nhưng điều này tạo ra ba chuỗi thay vì một, và sử dụng hai lần nhiều bộ nhớ: có hai bạn đã viết, cộng với một trong số đó là hai người trong số họ tham gia với nhau, vì vậy bạn phải biết khi nào bỏ qua zen. Ưu điểm là bạn có thể áp dụng định dạng cho bất kỳ phần nào của các phần tử riêng biệt trên mỗi dòng hoặc cho toàn bộ lô từ bên ngoài dấu ngoặc đơn.
Cuối cùng, bạn có thể sử dụng ba trích dẫn chuỗi:
"""This is the first line of my text
which will be joined to a second."""
Đây thường là yêu thích của tôi, mặc dù hành vi của nó là hơi khác nhau như các dòng mới và bất kỳ khoảng trắng hàng đầu trên dòng tiếp theo sẽ hiển thị trong chuỗi thức của bạn . Bạn có thể loại bỏ dòng mới bằng dấu gạch chéo ngược thoát.
"""This is the first line of my text \
which will be joined to a second."""
Điều này có cùng vấn đề với kỹ thuật tương tự ở trên, trong mã đúng chỉ khác với mã không chính xác bởi khoảng trắng vô hình.
Điều nào là "tốt nhất" tùy thuộc vào tình huống cụ thể của bạn, nhưng câu trả lời không đơn giản là thẩm mỹ, mà là một trong những hành vi khác biệt tinh tế.
Có vẻ như là một lựa chọn tốt. Bạn không thích điều gì về nó? –
Một chút chủ quan, phải không? :) –
liên quan: http://stackoverflow.com/questions/1940710/syntax-quirks-or-why-is-that-valid-python (chuỗi nối trong python) – jldupont