Format Penulisan Kode
Pada tahun 2000 terbentuk organisasi Python Software Foundation (PSF) yang mengelola perkembangan dari bahasa pemrograman python, organisasi tersebut juga mengeluarkan panduan bagi para developer untuk melakukan pengembangan yaitu Python Enhancement Proposals (PEP). salah satu nya adalah style guide untuk python. PEP-8 yang berisi tentang panduan penulisan kode/syntax python. panduan ini diadaptasi dari style guide essay yang dibuat oleh Guido Van Rossum. panduan ini pun masih terus berkembang seiring perkembangan dari bahasa itu sendiri.
- Indentasi
pada python untuk mengelompokkan Statement bertingkat menggunakan indentasi. berbeda dengan beberapa bahasa lain yang menggunakan kurung kurawal untuk mengelompokkan Statementnya. indentasi yang disarankan setara dengan 4 spasi.
tingkat 1:
tingkat 2()
tingkat 2()
tingkat 3()
pada barisan yang berlanjut dapat mengikuti format dibawah:
# Aligned with opening delimiter.
foo = long_function_name(var_one, var_two,
var_three, var_four)
# Add 4 spaces (an extra level of indentation) to distinguish arguments from the rest.
def long_function_name(
var_one, var_two, var_three,
var_four):
print(var_one)
# Hanging indents should add a level.
foo = long_function_name(
var_one, var_two,
var_three, var_four)
Jika kondisi dari if statement cukup panjang kita dapat menuliskan konsisinya dalam beberapa baris seperti contoh
# No extra indentation.
if (this_is_one_thing and
that_is_another_thing):
do_something()
# Add a comment
if (this_is_one_thing and
that_is_another_thing):
# Since both conditions are true, we can frobnicate.
do_something()
# Add some extra indentation on the conditional continuation line.
if (this_is_one_thing
and that_is_another_thing):
do_something()
tanda kurung pada barisan lanjutan ditempatkan sejajar dengan karakter pertama dari list.
my_list = [
1, 2, 3,
4, 5, 6,
]
result = some_function_that_takes_arguments(
'a', 'b', 'c',
'd', 'e', 'f',
)
atau bisa juga tanda kurung tersebut bisa juga ditempatkan sejajar dengan karakter pertama.
my_list = [
1, 2, 3,
4, 5, 6,
]
result = some_function_that_takes_arguments(
'a', 'b', 'c',
'd', 'e', 'f',
)
2. Tab atau Spasi?
untuk melakukan indentasi kita dapat menggunakan tab ataupun spasi. konsisten menggunakan salah satu saja tab atau indentasi, pada python 3 kita tidak diperbolehkan untuk mencampurkan spasi dan tab pada indentasi kita, sedangkan pada python 2 tab akan dikonversi ke spasi.
3. Membuat baris baru setelah operator atau sebelum operator?
Selama Beberapa dekade style yang disarankan, membuat baris baru setelah operator tetapi ini menimbulkan masalah karena operator sulit diidentifikasi karena tersebar pada kolom yang berbeda atau tidak sejajar.
# Wrong:
# operators sit far away from their operands
income = (gross_wages +
taxable_interest +
(dividends - qualified_dividends) -
ira_deduction -
student_loan_interest)
untuk mengatasi permasalahan ini, disarankan untuk membentuk baris baru sebelum operator.
# Correct:
# easy to match operators with operands
income = (gross_wages
+ taxable_interest
+ (dividends - qualified_dividends)
- ira_deduction
- student_loan_interest
4. Hindari menambahkan whitespace yang tidak perlu
antara kurung buka dan kurung tutup.
# Correct:
spam(ham[1], {eggs: 2})
# Wrong:
spam( ham[ 1 ], { eggs: 2 } )
antara tanda koma dan tutup kurung.
# Correct:
foo = (0,)
# Wrong:
bar = (0, )
sebelum tanda koma, titik koma, dan titik dua.
# Correct:
if x == 4: print x, y; x, y = y, x
# Wrong:
if x == 4 : print x , y ; x , y = y , x
titik dua pada slicing atau indexing berperan sebagai operator, dimana memiliki spasi atau whitespace yang sama di kedua sisinya.
# Correct:
ham[1:9], ham[1:9:3], ham[:9:3], ham[1::3], ham[1:9:]
ham[lower:upper], ham[lower:upper:], ham[lower::step]
ham[lower+offset : upper+offset]
ham[: upper_fn(x) : step_fn(x)], ham[:: step_fn(x)]
ham[lower + offset : upper + offset]
# Wrong:
ham[lower + offset:upper + offset]
ham[1: 9], ham[1 :9], ham[1:9 :3]
ham[lower : : upper]
ham[ : upper]
sebelum kurung buka pada pemanggilan fungsi.
# Correct:
spam(1)
# Wrong:
spam (1)
sebelum kurung buka pada slicing atau indexing.
# Correct:
dct['key'] = lst[index]
# Wrong:
dct ['key'] = lst [index]
spasi yang lebih dari satu pada assignment
# Correct:
x = 1
y = 2
long_variable = 3
# Wrong:
x = 1
y = 2
long_variable = 3
Masih banyak format penulisan yang lain, teman-teman bisa mempelajarinya pada disini.