Menyimpan Fungsi dalam Struktur Data untuk Invokasi Fleksibel
Apabila bekerja dengan kod Python, selalunya berguna untuk menyimpan fungsi dalam cara berstruktur untuk masa jalan seruan. Semasa cuba membuat senarai atau kamus dengan fungsi, anda mungkin mengalami pengehadan seperti yang diterangkan dalam soalan anda:
mydict = { 'funcList1': [foo(), bar(), goo()], 'funcList2': [foo(), goo(), bar()]}
Pendekatan ini mengakibatkan penggunaan fungsi serta-merta, yang membawa kepada tingkah laku yang salah. Untuk menangani isu ini, kami memerlukan struktur data yang sesuai yang membolehkan kami mengaitkan fungsi dengan pengecam untuk pemanggilan kemudian.
Menggunakan Kamus untuk Penghantaran Fungsi
Fungsi Python adalah yang pertama -objek kelas, bermakna ia boleh diberikan kepada pembolehubah dan disimpan dalam struktur data. Untuk menyimpan fungsi dalam kamus, anda harus menetapkannya secara langsung sebagai nilai, memastikan ia adalah objek fungsi dan bukannya hasil seruannya.
Contohnya:
dispatcher = {'foo': foo, 'bar': bar}
Dalam kamus ini , kunci adalah pengecam dan nilai adalah rujukan kepada objek fungsi sebenar. Untuk menggunakan fungsi 'foo', cuma panggil dispatcher['foo']().
Menyimpan Berbilang Fungsi dalam Senarai
Jika anda perlu menyimpan berbilang fungsi sebagai satu kumpulan, anda boleh menggunakan senarai. Walau bagaimanapun, menggunakan senarai fungsi secara manual boleh menyusahkan. Untuk menangani perkara ini, anda boleh mencipta fungsi pembantu untuk mengulangi senarai dan menggunakan setiap fungsi:
def fire_all(func_list): for f in func_list: f() dispatcher = {'foobar': [foo, bar], 'bazcat': [baz, cat]} fire_all(dispatcher['foobar'])
Kod ini akan menggunakan kedua-dua fungsi 'foo' dan 'bar' apabila fire_all(dispatcher['foobar' ]) dipanggil.
Kesimpulan
Menggunakan kamus atau senarai untuk menyimpan fungsi menyediakan pendekatan yang fleksibel dan berstruktur untuk mengurus dan menggunakan fungsi secara dinamik. Ini membolehkan anda mencipta komponen boleh guna semula dan meningkatkan kebolehbacaan dan kebolehselenggaraan kod.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyimpan dan Menggunakan Fungsi dengan Cekap dalam Struktur Data Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!