Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah Anda Boleh Mengakses Ahli Kamus Menggunakan Notasi Titik dalam Python?

Bagaimanakah Anda Boleh Mengakses Ahli Kamus Menggunakan Notasi Titik dalam Python?

Patricia Arquette
Patricia Arquetteasal
2024-11-16 12:06:03829semak imbas

How Can You Access Dictionary Members Using Dot Notation in Python?

Akses Notasi Titik kepada Ahli Kamus

Memanipulasi ahli kamus menggunakan pengindeksan tradisional (cth. mydict['val']) kadangkala menyusahkan. Soalan ini membincangkan cara untuk meningkatkan kebolehcapaian kamus dengan mendayakan notasi titik (mis., mydict.val). Selain itu, ia mencari penyelesaian untuk mengakses kamus bersarang dengan cara yang sama.

Kunci untuk mencapai akses notasi titik terletak pada mencipta kelas tersuai yang mewarisi daripada kelas dict terbina dalam. Dengan mentakrifkan kaedah __getattr__, __setattr__ dan __delattr__, kita boleh memintas akses atribut, tetapan dan operasi pemadaman dan mengubah halanya ke kamus asas. Berikut ialah contoh kelas sedemikian:

class dotdict(dict):
    """dot.notation access to dictionary attributes"""
    __getattr__ = dict.get
    __setattr__ = dict.__setitem__
    __delattr__ = dict.__delitem__

Untuk menunjukkan penggunaannya, mari buat contoh kamus:

mydict = {'val': 'it works'}

Sekarang, kami boleh menggunakan kelas dotdict kami untuk membungkus kamus ini:

mydict = dotdict(mydict)

Transformasi ini memberi kuasa kepada kami untuk mengakses ahli kamus menggunakan titik tatatanda:

mydict.val
# 'it works'

Selain itu, kita boleh memanjangkan konsep ini kepada kamus bersarang dengan mencipta lapisan tambahan tika dotdict. Sebagai contoh, kita boleh mencipta kamus bersarang dalam mydict dan menjadikannya boleh diakses melalui berbilang peringkat tatatanda titik:

nested_dict = {'val': 'nested works too'}
mydict = dotdict(mydict)
mydict.nested = dotdict(nested_dict)

Kini, kita boleh mengakses nilai kamus bersarang dalam menggunakan satu siri titik:

mydict.nested.val
# 'nested works too'

Atas ialah kandungan terperinci Bagaimanakah Anda Boleh Mengakses Ahli Kamus Menggunakan Notasi Titik dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn