Itu awal. Ini bukan praktik yang buruk untuk mendefinisikan string Anda yang lebih panjang di luar kode yang menggunakannya. Ini adalah cara untuk memisahkan data dan perilaku. Pilihan pertama Anda adalah menggabungkan string literal bersama secara implisit dengan membuatnya berdekatan satu sama lain:
("This is the first line of my text, "
"which will be joined to a second.")
Atau dengan kelanjutan akhir baris, yang sedikit lebih rapuh, karena ini berfungsi:
"This is the first line of my text, " \
"which will be joined to a second."
Tetapi ini tidak:
"This is the first line of my text, " \
"which will be joined to a second."
Lihat perbedaannya? Tidak? Baik Anda tidak akan ketika itu kode Anda juga.
Kelemahan dari penyatuan implisit adalah bahwa itu hanya bekerja dengan string literal, bukan dengan string yang diambil dari variabel, sehingga hal-hal bisa menjadi sedikit lebih berbulu ketika Anda refactor. Selain itu, Anda hanya dapat menginterpolasi pemformatan pada string gabungan secara keseluruhan.
Atau, Anda dapat bergabung secara eksplisit menggunakan operator gabungan ( +
):
("This is the first line of my text, " +
"which will be joined to a second.")
Eksplisit lebih baik daripada implisit, seperti kata zen dari python, tetapi ini menciptakan tiga string, bukan satu, dan menggunakan memori dua kali lebih banyak: ada dua yang telah Anda tulis, ditambah satu yang keduanya bergabung bersama, jadi Anda harus tahu kapan harus mengabaikan zen. Sisi baiknya adalah Anda dapat menerapkan pemformatan ke salah satu substring secara terpisah di setiap baris, atau ke seluruh lot dari luar tanda kurung.
Akhirnya, Anda dapat menggunakan string yang dikutip tiga kali lipat:
"""This is the first line of my text
which will be joined to a second."""
Ini sering menjadi favorit saya, meskipun perilakunya sedikit berbeda karena baris baru dan spasi putih mana pun pada baris berikutnya akan muncul di string terakhir Anda. Anda dapat menghilangkan baris baru dengan garis miring terbalik.
"""This is the first line of my text \
which will be joined to a second."""
Ini memiliki masalah yang sama dengan teknik yang sama di atas, dalam kode yang benar hanya berbeda dari kode yang salah oleh spasi kosong.
Mana yang "terbaik" tergantung pada situasi khusus Anda, tetapi jawabannya bukan hanya estetika, tetapi salah satu perilaku yang agak berbeda.