Dibandingkan dengan bahasa seperti Perl, Python memiliki sejumlah konstruk kontrol yang terbatas:
- hanya
if
dan tidak unless
,
- hanya
for
itu mengulangi urutan dan tidak ada foreach
atau gaya-C for
,
- hanya
while
itu memeriksa suatu kondisi setiap loop dan tidak do-while
,
- hanya
if-elif
dan tidak switch
,
- hanya ada satu konstruk komentar
#
, dan untuk setiap baris Anda dapat mengetahui apakah itu dikomentari atau tidak, tanpa melihat baris sebelumnya.
Juga, ada hampir satu cara untuk indentasi sumber Anda; kebanyakan kasus lekukan kreatif secara sintaksis dikecualikan.
Ini membuat penguraian sumber Python lebih mudah bagi manusia.
Ada upaya untuk menjadi minimal namun lengkap dalam tipe bawaan dan pustaka standar.
- untuk daftar yang dapat diubah, Anda menggunakan satu-satunya
list
tipe bawaan; itu O (1) untuk sebagian besar operasi, dan Anda tidak perlu memilih implementasi yang tepat,
- untuk daftar yang tidak berubah, sama-sama, Anda hanya menggunakan
tuple
jenisnya,
- untuk peta, Anda menggunakan satu-satunya built-in
dict
yang sangat efisien dalam banyak kasus, tidak perlu merenungkan implementasi yang akan digunakan.
Python 3 memperluas ini ke integer: tidak peduli seberapa besar integer Anda, Anda menggunakan tipe yang sama dan tidak pernah peduli tentang paksaan.
Python berusaha menghindari gula sintaksis. Tetapi kadang - kadang itu menambahkan gula sintaksis hanya untuk membuat cara yang jelas menjadi jelas. Anda dapat menulis if foo is not None
alih-alih if not (foo is None)
karena 'tidak' adalah huruf khusus. Masih foo is not None
mudah dibaca, tidak bisa disalahartikan, dan Anda tidak harus berpikir, Anda hanya menulis hal yang sudah jelas.
Tentu saja, sebagian besar hal yang lebih rumit dalam Python dapat dilakukan dengan beberapa cara. Anda dapat menambahkan metode ke kelas dengan deklarasi atau dengan penetapan slot sederhana, Anda dapat meneruskan argumen ke berbagai fungsi dalam sejumlah cara kreatif, dll. Itu hanya karena bagian dalam bahasa sebagian besar diekspos.
Kuncinya adalah bahwa selalu ada satu cara yang dimaksudkan untuk menjadi yang terbaik, yang mencakup semua kasus. Jika ada cara lain, mereka tidak ditambahkan sebagai alternatif yang sama (seperti if
dan unless
) tetapi hanya mengekspos kerja batin. Perlahan tapi pasti alternatif semacam itu sudah usang (tidak dihilangkan!) Dengan meningkatkan mekanisme terbaik yang diketahui.
Dekorator membungkus panggilan fungsi AOP. Sebelum 2.6, Anda harus menggunakan __metaclass__
anggota sihir untuk mendeklarasikan metaclass kelas; sekarang Anda dapat menggunakan sintaksis dekorator yang sama untuk ini juga. Sebelum ke 3.0 Anda memiliki dua jenis string, byte-oriented dan Unicode, yang dapat Anda campur secara tidak sengaja. Sekarang Anda memiliki satu-satunya Unicode str
dan satu-satunya biner-transparan bytes
, yang tidak dapat Anda campur tanpa sengaja.
"""
komentar (docstrings). Ini membentang beberapa baris.