Atau: kata kunci = dikt (kata kunci1 = 'foo', kata kunci2 = 'bar')
Ned Deily
1
The **Operator membongkar dapat digunakan untuk melewati kwargs dari satu fungsi ke kwargs lain fungsi ini. Pertimbangkan kode ini: (baris baru sepertinya tidak diperbolehkan dalam komentar) def a(**kw): print(kw), dan def b(**kw): a(kw). Kode ini akan menghasilkan kesalahan karena kwargs sebenarnya adalah kamus, dan akan diartikan sebagai argumen biasa dari dicttipe tersebut. Itulah sebabnya mengubah def b(**kw): a(kw)menjadi def b(**kw): a(**kw)akan membongkar kwdan menyelesaikan kesalahan.
Benj
10
Seperti yang ditunjukkan orang lain, Anda dapat melakukan apa yang Anda inginkan dengan memberikan dict. Ada berbagai cara untuk membuat dict. Salah satu yang mempertahankan keyword=valuegaya yang Anda coba adalah dengan menggunakan dict built-in:
keywords = dict(keyword1 ='foo', keyword2 ='bar')
Perhatikan keserbagunaan dict; semua ini menghasilkan hasil yang sama:
ah, saya tidak memperhatikan. Seharusnya lebih baik sekarang.
David Z
3
Jadi ketika saya datang ke sini saya mencari cara untuk melewatkan beberapa ** kwarg dalam satu fungsi - untuk digunakan nanti dalam fungsi selanjutnya. Karena ini, tidak mengherankan, tidak berhasil:
def func1(**f2_x,**f3_x):...
Dengan beberapa pengkodean 'eksperimental' saya sendiri sampai pada cara yang jelas bagaimana melakukannya:
Jawaban:
Iya. Anda melakukannya seperti ini:
Menjalankan ini dengan Python mengonfirmasi bahwa ini menghasilkan hasil yang identik:
sumber
**
Operator membongkar dapat digunakan untuk melewati kwargs dari satu fungsi ke kwargs lain fungsi ini. Pertimbangkan kode ini: (baris baru sepertinya tidak diperbolehkan dalam komentar)def a(**kw): print(kw)
, dandef b(**kw): a(kw)
. Kode ini akan menghasilkan kesalahan karena kwargs sebenarnya adalah kamus, dan akan diartikan sebagai argumen biasa daridict
tipe tersebut. Itulah sebabnya mengubahdef b(**kw): a(kw)
menjadidef b(**kw): a(**kw)
akan membongkarkw
dan menyelesaikan kesalahan.Seperti yang ditunjukkan orang lain, Anda dapat melakukan apa yang Anda inginkan dengan memberikan dict. Ada berbagai cara untuk membuat dict. Salah satu yang mempertahankan
keyword=value
gaya yang Anda coba adalah dengan menggunakan dict built-in:Perhatikan keserbagunaan
dict
; semua ini menghasilkan hasil yang sama:sumber
Apakah maksud Anda dikt? Tentu kamu bisa:
sumber
Jadi ketika saya datang ke sini saya mencari cara untuk melewatkan beberapa ** kwarg dalam satu fungsi - untuk digunakan nanti dalam fungsi selanjutnya. Karena ini, tidak mengherankan, tidak berhasil:
Dengan beberapa pengkodean 'eksperimental' saya sendiri sampai pada cara yang jelas bagaimana melakukannya:
Ini mencetak seperti yang diharapkan:
sumber
python 3.5
denganFoo(**arg1, **arg2)
kemungkinan