Mencipta Dict "Sempurna"
Dalam Python, mencipta kelas tersuai yang berkelakuan serupa dengan kamus boleh menjadi tugas yang rumit. Begini cara untuk mencapainya dengan Kelas Asas Abstrak (ABC).
Melaksanakan MutableMapping ABC
Modul collections.abc menyediakan ABC untuk pelbagai struktur data, termasuk MutableMapping. Dengan melaksanakan MutableMapping, kita boleh mencipta objek dengan antara muka yang sama seperti dict. Berikut ialah pelaksanaan minimalis:
from collections.abc import MutableMapping class TransformedDict(MutableMapping): def __init__(self, *args, **kwargs): self.store = dict() self.update(dict(*args, **kwargs)) def __getitem__(self, key): return self.store[self._keytransform(key)] def __setitem__(self, key, value): self.store[self._keytransform(key)] = value def __delitem__(self, key): del self.store[self._keytransform(key)] def __iter__(self): return iter(self.store) def __len__(self): return len(self.store) def _keytransform(self, key): return key
Menyesuaikan Transformasi Utama
Dengan mengatasi kaedah _keytransform, kami boleh menggunakan transformasi sewenang-wenangnya pada kunci. Sebagai contoh, untuk memaksa kekunci huruf kecil:
class MyTransformedDict(TransformedDict): def _keytransform(self, key): return key.lower()
Faedah ABC
Melaksanakan ABC menawarkan beberapa kelebihan:
Ringkasnya, melaksanakan MutableMapping dan mengatasi _keytransform menyediakan cara yang ringkas dan berkesan untuk mencipta dict tersuai dengan pengendalian kunci yang disesuaikan sambil mengekalkan kefungsian dict standard.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membuat Kamus Tersuai dalam Python dengan Kunci Berubah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!