OK, saya sadar bahwa string triple-quotes dapat berfungsi sebagai komentar multiline. Sebagai contoh,
"""Hello, I am a
multiline comment"""
dan
'''Hello, I am a
multiline comment'''
Tapi secara teknis ini adalah string, benar?
Saya sudah googled dan membaca panduan gaya Python, tetapi saya tidak dapat menemukan jawaban teknis mengapa tidak ada implementasi formal multiline, / * * / jenis komentar. Saya tidak punya masalah menggunakan tanda kutip tiga, tapi saya sedikit ingin tahu apa yang menyebabkan keputusan desain ini.
if False:
kodeJawaban:
Saya ragu Anda akan mendapatkan jawaban yang lebih baik daripada, "Guido tidak merasa perlu komentar multi-baris".
Guido telah tweet tentang ini:
sumber
if False:
sebelum kode yang perlu dinonaktifkan.if False
lebih baik. Itu mencapai hal yang persis sama, sementara menjadi kurang jelas (karena tidak sekilas sekilas bahwa blok kode telah dinonaktifkan).Komentar multi-baris mudah dipecahkan. Bagaimana jika Anda memiliki yang berikut dalam program kalkulator sederhana?
Cobalah untuk berkomentar dengan komentar multi-baris:
Ups, string Anda berisi pembatas komentar akhir.
sumber
#:
dan menggunakan indentasi untuk menunjukkan kapan komentar itu berakhir. Ini bersih, konsisten, dan menangani sarang dengan sempurna.Teks yang dikutip tiga kali lipat TIDAK boleh dianggap sebagai komentar multisaluran; dengan konvensi, mereka adalah dokumen . Mereka harus menjelaskan apa yang kode Anda lakukan dan bagaimana menggunakannya, tetapi tidak untuk hal-hal seperti mengomentari blok kode.
Menurut Guido, komentar multiline dengan Python hanyalah komentar baris tunggal yang bersebelahan (cari "blokir komentar").
Untuk mengomentari blok kode, saya terkadang menggunakan pola berikut:
sumber
V}>>
Ini kemungkinan kembali ke konsep inti bahwa harus ada satu cara yang jelas untuk melakukan tugas. Gaya komentar tambahan menambah komplikasi yang tidak perlu dan dapat mengurangi keterbacaan.
sumber
#
.Nah, triple-quotes digunakan sebagai komentar multiline dalam dokumen. Dan # komentar digunakan sebagai komentar sebaris dan orang-orang terbiasa dengannya.
Sebagian besar bahasa skrip juga tidak memiliki komentar multiline. Mungkin itu penyebabnya?
Lihat PEP 0008 , Komentar bagian
Dan lihat apakah editor Python Anda menawarkan beberapa cara pintas keyboard untuk memblokir komentar. Emacs mendukungnya, juga Eclipse, mungkin sebagian besar dari IDE yang layak melakukannya.
sumber
Dari The Zen of Python :
Harus ada satu - dan lebih disukai hanya satu - cara yang jelas untuk melakukannya.
sumber
Secara pribadi gaya komentar saya di katakan seperti Java
Jadi memiliki komentar single-line saja bukan hal yang buruk jika gaya Anda khas untuk contoh sebelumnya karena sebagai perbandingan Anda akan memiliki
VB.NET juga merupakan bahasa dengan komentar hanya satu baris, dan secara pribadi saya merasa menjengkelkan karena komentar pada akhirnya tampak kurang menyukai komentar dan lebih seperti semacam kutipan
Komentar single-line-only akhirnya memiliki lebih sedikit penggunaan karakter daripada komentar multi-line, dan lebih kecil kemungkinannya untuk diloloskan oleh beberapa karakter yang cerdik dalam pernyataan regex mungkin? Tapi aku cenderung setuju dengan Ned.
sumber
Untuk mengomentari blok kode di Pycharm IDE:
sumber
Gunakan blok komentar atau cari dan ganti (s / ^ / # / g) di editor Anda untuk mencapai ini.
sumber
Saya menyelesaikan ini dengan mengunduh makro untuk editor teks saya (TextPad) yang memungkinkan saya menyorot baris dan kemudian memasukkan # di bagian pertama dari setiap baris. Makro serupa menghapus # itu. Beberapa orang mungkin bertanya mengapa multiline diperlukan tetapi itu berguna ketika Anda mencoba untuk "mematikan" blok kode untuk keperluan debugging.
sumber
Untuk orang lain yang mencari komentar multi-baris dalam Python - menggunakan format triple quote dapat memiliki beberapa konsekuensi yang bermasalah, karena saya baru saja belajar dengan cara yang sulit. Pertimbangkan ini:
Komentar multi-baris akan dimasukkan ke string berikutnya, mengacaukan
'species'
kunci. Lebih baik gunakan saja#
untuk komentar.sumber
Karena konvensi # adalah yang umum, dan benar-benar tidak ada yang dapat Anda lakukan dengan komentar multiline yang tidak dapat Anda lakukan dengan komentar # -sign. Ini kecelakaan historis, seperti nenek moyang dari
/* ... */
komentar yang kembali ke PL / I,sumber
Anggap saja mereka dianggap tidak perlu. Karena sangat mudah untuk mengetik saja
#a comment
, komentar multiline dapat terdiri dari banyak komentar satu baris.Untuk HTML , di sisi lain, ada lebih banyak kebutuhan untuk multiliners. Lebih sulit untuk terus mengetik
<!--comments like this-->
.sumber
Ini hanya dugaan .. tapi
Karena mereka adalah string, mereka memiliki beberapa nilai semantik (kompiler tidak menghilangkannya), oleh karena itu masuk akal bagi mereka untuk digunakan sebagai dokumen. Mereka sebenarnya menjadi bagian dari AST , jadi mengekstraksi dokumentasi menjadi lebih mudah.
sumber
Selain itu, komentar multiline adalah menyebalkan . Maaf untuk mengatakan, tetapi terlepas dari bahasa, saya tidak menggunakannya untuk hal lain selain tujuan debugging. Katakanlah Anda memiliki kode seperti ini:
Kemudian Anda mengetahui bahwa ada sesuatu dalam kode Anda yang tidak dapat Anda perbaiki dengan debugger, jadi Anda mulai secara manual mendebugnya dengan mengomentari potongan kode yang lebih kecil dan lebih kecil dengan komentar multiline ini. Ini kemudian akan memberikan fungsi:
Ini sangat menjengkelkan.
sumber
/*
komentar gaya.Komentar multiline menggunakan IDLE di:
Mac OS X , setelah pemilihan kode, beri komentar satu blok kode dengan Ctrl+ 3dan batalkan komentar menggunakan Ctrl+ 4.
Windows , setelah pemilihan kode, beri komentar satu blok kode dengan Ctrl+ Alt+ 3dan batalkan komentar menggunakan Ctrl+ At+ 4.
sumber
Saya ingat pernah membaca tentang seorang pria yang akan memberikan komentar multi-barisnya ke dalam variabel yang dikutip tiga kali lipat:
Ini memang memakan sedikit memori, tetapi memberi Anda fungsi komentar multi-line, dan ditambah kebanyakan editor akan menyoroti sintaks untuk Anda :)
Juga mudah untuk berkomentar kode hanya dengan membungkusnya dengan
dan
sumber
x =
dan tidak memakan memori apa pun.