SORU
13 Ocak 2010, ÇARŞAMBA


Nasıl Python bu uzun satırı kadar zarar verebilir miyim?

Nasıl böyle uzun bir çizgi biçimlendirme hakkında gitmek istiyorsunuz? En fazla 80 karakter almak istiyorum

logger.info("Skipping {0} because its thumbnail was already in our system as {1}.".format(line[indexes['url']], video.title))

Bu benim en iyi seçenek mi?

url = "Skipping {0} because its thumbnail was already in our system as {1}."
logger.info(url.format(line[indexes['url']], video.title))

CEVAP
13 Ocak 2010, ÇARŞAMBA


Bu bir başlangıç. Bunları kullanan kodu dışında uzun dizeleri tanımlamak için kötü bir uygulama değil. Veri ve davranış ayırmak için bir yol var. İlk seçenek dize hazır birlikte dolaylı olarak birbirine bitişik yaparak katılmak için:

("This is the first line of my text, "
"which will be joined to a second.")

Bu işleri ya biraz daha kırılgan olan hat devamı biten, ile

"This is the first line of my text, " \
"which will be joined to a second."

Ama bu değil:

"This is the first line of my text, " \ 
"which will be joined to a second."

Farkı görüyor musun? Hayır mı? Kodunuzu ya da zaman olmaz.

Olumsuz örtülü katıldığınız için sadece bir dizge ile çalışan, dizeleri alınan karar ile, şeyleri yeniden zaman biraz daha zorlu olabilir bu yüzden değişkenleri. Ayrıca, tek bir bütün olarak birlikte dize biçimlendirme açılıyor.

Alternatif olarak, açıkça birleştirme operatörü ( ) kullanarak katılabilirsiniz:

("This is the first line of my text, "   
"which will be joined to a second.")

Açık iyidir örtülü olarak zen python diyor, ama bu oluşturur üç Tel yerine birini kullanır, ve iki kat daha fazla hafıza: var, iki var, yazılı, artı bir hangi ikisi birleştiler, yani, biliyorum zaman göz ardı zen. Baş biçimlendirme uygulayabilirsiniz. parantez dışında herhangi bir nedenle, her satırda ayrı ayrı, ya da hepsini.

Son olarak, üç tırnaklı dizeleri kullanabilirsiniz:

"""This is the first line of my text
which will be joined to a second."""

Bu davranış kalıbı olarak biraz daha farklı ve daha sonraki satırlarda herhangi bir lider boşluk son dizesinde görünür ama genellikle benim favorim. Kaçan bir ters eğik çizgi ile yeni satır ortadan kaldırabilir.

"""This is the first line of my text \
which will be joined to a second."""

Bu, doğru kodu sadece görünmez boşluk tarafından yanlış kod farklıdır yukarıda aynı tekniği aynı sorun var.

Hangisi "en iyi" belirli bir durum, ama cevap sadece estetik ama kurnazca değil farklı davranışlar. duruma göre değişir

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jesse Pimenta

    Jesse Piment

    5 EKİM 2011
  • kimaliz

    kimaliz

    18 Temmuz 2006
  • ThePhestor

    ThePhestor

    22 Mart 2011