Untuk menerima sejumlah argumen posisi, kita perlu menggunakan operator >>> greet("Trey") Hello Trey 2 saat mendefinisikan fungsi ini. Kami akan mengganti >>> greet("Trey") Hello Trey 1 dengan >>> greet("Trey") Hello Trey 4
>>> def greet(*names): .. for name in names: .. print("Hello", name) ...
Itu >>> greet("Trey") Hello Trey 4 dalam argumen kami memberi tahu Python bahwa kami ingin menangkap semua argumen posisi yang diberikan ke fungsi ini, ke dalam tuple, arahkan variabel >>> greet("Trey") Hello Trey 6 ke tuple itu
Sekarang ketika kita memanggil >>> greet("Trey") Hello Trey 0 hanya dengan satu nama, fungsinya sama seperti sebelumnya
>>> greet("Trey") Hello Trey
Tapi kita juga bisa menyebutnya dengan banyak nama untuk menyapa banyak orang
>>> greet("Trey", "Jo") Hello Trey Hello Jo >>> greet("Trey", "Jo", "Ian") Hello Trey Hello Jo Hello Ian _
Bahkan kita bisa menyebutnya tanpa nama
Tuple >>> greet("Trey") Hello Trey 6 dalam fungsi >>> greet("Trey") Hello Trey 0 kosong dalam hal ini sehingga loop tidak melakukan apa-apa. Bukan kesalahan untuk tidak memberikan argumen saat Anda menggunakan >>> greet("Trey") Hello Trey 2
Fungsi yang menerima argumen tak terbatas
Apa contoh fungsi yang menerima sejumlah argumen posisi?
Sejumlah fungsi bawaan Python benar-benar berfungsi seperti ini. Misalnya, fungsi menerima sejumlah iterable untuk diulang pada waktu yang sama
>>> help(zip) class zip(object) | zip(*iterables) --> zip object
Itu >>> greet(name="Trey") Hello Trey _2 dalam definisi fungsi >>> greet(name="Trey") Hello Trey 1 (kelas >>> greet(name="Trey") Hello Trey 1 secara teknis) berarti ia menerima sejumlah iterables. Ketika Anda memberikan >>> greet(name="Trey") Hello Trey _1 loop ke semua iterables itu secara bersamaan
The >>> greet(name="Trey") Hello Trey _6 dan fungsi, juga menerima sejumlah argumen posisi
min(arg1, arg2, *args, *[, key=func]) -> value
Perhatikan bahwa dalam dokumentasi >>> greet(name="Trey") Hello Trey _6 bahwa >>> greet(name="Trey") Hello Trey 9 dan >>> greet("Trey", "Jo") Traceback (most recent call last): File "", line 1, in TypeError: greet() takes 1 positional argument but 2 were given >>> greet("Trey", "Jo", "Ian") Traceback (most recent call last): File "", line 1, in TypeError: greet() takes 1 positional argument but 3 were given 0 sebelum >>> greet("Trey", "Jo") Traceback (most recent call last): File "", line 1, in TypeError: greet() takes 1 positional argument but 2 were given >>> greet("Trey", "Jo", "Ian") Traceback (most recent call last): File "", line 1, in TypeError: greet() takes 1 positional argument but 3 were given 1. Dimungkinkan untuk menentukan fungsi Anda sendiri seperti ini. Kita dapat menempatkan argumen posisi lain (wajib) sebelum semua argumen posisi (opsional) lainnya yang kita tangkap
Anda juga dapat meneruskan sejumlah argumen ke fungsi >>> greet("Trey", "Jo") Traceback (most recent call last): File "", line 1, in TypeError: greet() takes 1 positional argument but 2 were given >>> greet("Trey", "Jo", "Ian") Traceback (most recent call last): File "", line 1, in TypeError: greet() takes 1 positional argument but 3 were given 2
>>> help(print) print(...) print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
Dokumentasinya sedikit berbeda dengan. itu tidak benar-benar menunjukkan bahwa >>> greet("Trey") Hello Trey _2 operator (melainkan itu menunjukkan >>> greet("Trey", "Jo") Traceback (most recent call last): File "", line 1, in TypeError: greet() takes 1 positional argument but 2 were given >>> greet("Trey", "Jo", "Ian") Traceback (most recent call last): File "", line 1, in TypeError: greet() takes 1 positional argument but 3 were given 5 untuk menunjukkan bahwa sejumlah nilai diterima)
Anda dapat memberikan sejumlah argumen ke >>> greet("Trey", "Jo") Traceback (most recent call last): File "", line 1, in TypeError: greet() takes 1 positional argument but 2 were given >>> greet("Trey", "Jo", "Ian") Traceback (most recent call last): File "", line 1, in TypeError: greet() takes 1 positional argument but 3 were given 2 dan itu akan mencetak semuanya dengan spasi di antara mereka
Gunakan >>> greet("Trey") Hello Trey _2 untuk menerima sejumlah argumen posisi
Untuk membuat fungsi yang menerima sejumlah argumen, Anda dapat menggunakan operator >>> greet("Trey") Hello Trey 2 dan kemudian beberapa nama variabel saat mendefinisikan argumen fungsi Anda. Ini membuat Python tahu bahwa ketika fungsi itu dipanggil dengan argumen posisi apa pun, semuanya harus ditangkap ke dalam tuple (yang akan ditunjuk oleh variabel itu)
Jadi jika Anda ingin membuat fungsi yang menerima sejumlah argumen posisi, gunakan operator >>> greet("Trey") Hello Trey 2