Forward Slash (/) menunjukkan semua argumen sebelumnya hanya argumen posisional. Fitur argumen hanya posisional ditambahkan dalam python 3.8 setelah PEP 570 diterima. Awalnya notasi ini didefinisikan dalam PEP 457 - Notasi untuk Notasi Untuk Parameter Hanya-Posisi
Parameter dalam definisi fungsi sebelum Foraward slash (/) hanya bersifat posisional dan parameter yang diikuti oleh slash (/) dapat berupa apa saja sesuai sintaks. Di mana argumen dipetakan ke parameter hanya posisi hanya berdasarkan posisi mereka saat memanggil fungsi. Melewati parameter hanya posisi dengan kata kunci (nama) tidak valid.
Mari kita ambil contoh berikut
def foo(a, b, / , x, y):
print("positional ", a, b)
print("positional or keyword", x, y)
Di sini, di atas, definisi fungsi parameter a dan b adalah hanya-posisi, sedangkan x atau y dapat berupa posisi atau kata kunci.
Panggilan fungsi berikut ini valid
foo(40, 20, 99, 39)
foo(40, 3.14, "hello", y="world")
foo(1.45, 3.14, x="hello", y="world")
Namun, pemanggilan fungsi berikut ini tidak valid yang menimbulkan pengecualian TypeError karena a, b tidak dilewatkan sebagai argumen posisi alih-alih dilewatkan sebagai kata kunci
foo(a=1.45, b=3.14, x=1, y=4)
TypeError: foo () mendapatkan beberapa argumen hanya posisi yang dilewatkan sebagai argumen kata kunci: 'a, b'
Banyak fungsi bawaan di python menerima argumen hanya posisi di mana melewati argumen dengan kata kunci tidak masuk akal. Misalnya fungsi bawaan len hanya menerima satu argumen posisi (saja), Di mana memanggil len sebagai len (obj = "hello world") mengganggu keterbacaan, periksa bantuan (len).
>>> help(len)
Help on built-in function len in module builtins:
len(obj, /)
Return the number of items in a container.
Parameter hanya posisi membuat fungsi c / library yang mendasarinya mudah dipelihara. Ini memungkinkan nama parameter hanya parameter posisi menjadi perubahan di masa mendatang tanpa risiko melanggar kode klien yang menggunakan API
Last but not least, parameter hanya posisi memungkinkan kita untuk menggunakan nama mereka untuk digunakan dalam argumen kata kunci panjang variabel. Lihat contoh berikut
>>> def f(a, b, /, **kwargs):
... print(a, b, kwargs)
...
>>> f(10, 20, a=1, b=2, c=3) # a and b are used in two ways
10 20 {'a': 1, 'b': 2, 'c': 3}
Parameter hanya posisi lebih baik Dijelaskan di sini di Jenis argumen fungsi dalam python: Parameter Hanya Posisi
Sintaks parameter hanya-posisi secara resmi ditambahkan ke python3.8. Lihat apa yang baru python3.8 - hanya argumen posisi
Terkait PEP: PEP 570 - Parameter Hanya-Posisi Python
/
token, karena "ini adalah operasi terbalik*
" menunjukkan, bahwa Python hanya sedikit gila. Ini semacam sinestesia.