Buka paket dengan Python?


222

Saya pikir 'membongkar' mungkin kosa kata yang salah di sini - permintaan maaf karena saya yakin ini adalah pertanyaan rangkap.

Pertanyaan saya cukup sederhana: dalam fungsi yang mengharapkan daftar item, bagaimana saya bisa meneruskan item daftar Python tanpa mendapatkan kesalahan?

my_list = ['red', 'blue', 'orange']
function_that_needs_strings('red', 'blue', 'orange') # works!
function_that_needs_strings(my_list) # breaks!

Tentunya harus ada cara untuk memperluas daftar, dan meneruskan fungsi 'red','blue','orange'di kuku?

Jawaban:



32

Ya, Anda dapat menggunakan *argssintaks (percikan):

function_that_needs_strings(*my_list)

di mana my_listbisa iterable; Python akan mengulangi objek yang diberikan dan menggunakan setiap elemen sebagai argumen terpisah untuk fungsi.

Lihat dokumentasi ekspresi panggilan .

Ada persamaan kata kunci-parameter juga, menggunakan dua bintang:

kwargs = {'foo': 'bar', 'spam': 'ham'}
f(**kwargs)

dan ada sintaks yang setara untuk menentukan argumen catch-all dalam tanda tangan fungsi:

def func(*args, **kw):
    # args now holds positional arguments, kw keyword arguments

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.