Rumah >pembangunan bahagian belakang >Tutorial Python >Bolehkah Anda Mengakses Ahli Kamus Menggunakan Notasi Titik dalam Python?

Bolehkah Anda Mengakses Ahli Kamus Menggunakan Notasi Titik dalam Python?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-15 04:03:02216semak imbas

Can You Access Dictionary Members Using Dot Notation in Python?

Notasi Titik untuk Akses Kamus: Memanjangkan Kelas Kamus Python

Dalam Python, mengakses ahli kamus biasanya memerlukan notasi kurungan, seperti mydict[ 'kunci']. Walau bagaimanapun, adalah mungkin untuk menggunakan notasi titik untuk tujuan yang sama, menjadikannya lebih mudah dan boleh dibaca. Ini amat berguna untuk mengakses kamus bersarang.

Satu cara untuk mencapainya ialah dengan melaksanakan kelas tersuai yang melanjutkan kelas dict terbina dalam. Kelas dotdict dibentangkan di sini:

  • Mentakrifkan semula kaedah getattr untuk membenarkan mengakses kekunci kamus menggunakan notasi titik.
  • Mengatasi setattr dan Kaedah delattr untuk menjadikan tatatanda titik berfungsi untuk menetapkan dan memadam atribut.
class dotdict(dict):
    """dot.notation access to dictionary attributes"""
    __getattr__ = dict.get
    __setattr__ = dict.__setitem__
    __delattr__ = dict.__delitem__

Untuk menggunakan kelas dotdict:

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

Kini, anda boleh akses ahli kamus menggunakan notasi titik:

mydict.val  # 'it works'

Anda juga boleh mengakses kamus bersarang dengan cara yang sama:

mydict.nested = dotdict(nested_dict)
mydict.nested.val  # 'nested works too'

Kaedah ini menyediakan cara yang mudah dan intuitif untuk berinteraksi dengan kamus, terutamanya apabila berurusan dengan struktur bersarang dalam.

Atas ialah kandungan terperinci Bolehkah Anda 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