亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Jadual Kandungan
1. Isu dan cabaran awal
2. Penyelesaian: _missing_ kaedah
3. Melaksanakan kaedah _missing_
4. Penggunaan dan Pengesahan
5. Langkah berjaga -jaga dan amalan terbaik
Meringkaskan
Rumah pembangunan bahagian belakang Tutorial Python Pengendalian Input Fleksibel Python Enum: Pemahaman yang lebih mendalam mengenai kaedah _missing_

Pengendalian Input Fleksibel Python Enum: Pemahaman yang lebih mendalam mengenai kaedah _missing_

Oct 16, 2025 am 09:36 AM

Pengendalian Input Fleksibel Python Enum: Pemahaman yang lebih mendalam mengenai kaedah _missing_

Artikel ini memperincikan bagaimana untuk mengendalikan nilai input yang pelbagai dengan elegan dengan mengatasi kaedah kelas _missing_ dalam kelas enum.enum python. Walaupun nilai dalaman ahli penghitungan ditetapkan, kita boleh membuatnya menerima pelbagai representasi luaran (seperti "benar", "ya", dan sebagainya) dan memetakannya kepada ahli penghitungan yang betul sambil mengekalkan nilai dalaman yang asal tidak berubah, dengan itu meningkatkan keteguhan dan keramahan pengguna penghitungan.

Dalam pembangunan Python, enum.enum menyediakan cara yang kuat untuk menentukan koleksi pemalar. Walau bagaimanapun, dalam aplikasi praktikal, kita sering menghadapi cabaran: bagaimana untuk membolehkan penghitungan menerima pelbagai bentuk input dan seragam memetakannya kepada ahli penghitungan tertentu sambil mengekalkan nilai dalaman anggota penghitungan itu sendiri tidak berubah. Sebagai contoh, penghitungan yang mewakili "ya/tidak" mungkin mempunyai nilai dalamannya yang ditakrifkan sebagai "y" dan "n", tetapi apabila menerima input luaran, ia mungkin perlu mengenali pelbagai bentuk seperti "benar", "ya" atau bahkan "t" sebagai makna "ya".

Artikel ini akan menggunakan kes tertentu untuk memperkenalkan secara terperinci bagaimana menggunakan kaedah kelas _missing_ enum.enum untuk menyelesaikan masalah ini dan mencapai pemprosesan input yang fleksibel.

1. Isu dan cabaran awal

Katakan kita menentukan penghitungan Yesorno untuk mewakili "ya" atau "tidak":

 Import enum

kelas yesorno (enum.enum):
  Ya = "y"
  Tidak = "N"

Kami berharap bahawa apabila input luaran adalah "Y" atau "N", ahli penghitungan yang sepadan boleh dibuat secara langsung. Sebagai contoh, yesorno ("y") boleh mendapatkan yesorno.yes. Bahagian fungsi ini disokong oleh enum.enum secara lalai.

Walau bagaimanapun, bagaimana jika sistem kita perlu menerima pelbagai input yang lebih luas, seperti "benar" atau "palsu", dan memetakannya ke yesorno.yes dan yesorno.no, sambil memerlukan yesorno.yes.yes. Mencuba Yesorno ("benar") secara langsung akan membuang nilai kerana "benar" bukanlah antara nilai -nilai ya atau tidak.

Pendekatan yang intuitif tetapi tidak diingini adalah untuk mengubah suai definisi penghitungan:

 # Pengubahsuaian tidak disyorkan kerana ia akan mengubah nilai dalaman kelas penghitungan Yesorno (enum.enum):
  Ya = "Benar"
  Tidak = "palsu"

Walaupun pengubahsuaian ini akan menjadikan kerja Yesorno ("benar"), yesorno.yes.value akan menjadi "benar" dan bukannya "y" seperti yang kita harapkan, yang bertentangan dengan keperluan kita untuk mengekalkan nilai dalaman tidak berubah.

2. Penyelesaian: _missing_ kaedah

enum.enum menyediakan kaedah kelas khas yang dipanggil _missing_, yang direka untuk mengendalikan situasi apabila nilai yang diluluskan ke dalam pembina penghitungan tidak dapat secara langsung sepadan dengan mana -mana ahli penghitungan. Dengan mengatasi kaedah ini, kami boleh melaksanakan logik carian tersuai untuk memetakan input tidak standard kepada ahli penghitungan yang betul.

Tandatangan kaedah _missing_ biasanya _missing_ (cls, nilai), di mana CLS adalah kelas penghitungan itu sendiri dan nilai adalah nilai yang tidak dapat ditandingi yang dimasukkan ke dalam pembina. Kaedah ini perlu mengembalikan ahli penghitungan yang sepadan dan harus membenarkan tingkah laku lalai (membuang valueerror) atau secara eksplisit membuang pengecualian jika perlawanan tidak dapat dijumpai.

3. Melaksanakan kaedah _missing_

Inilah pelaksanaan lengkap menggunakan kaedah _missing_ untuk menyelesaikan masalah di atas:

 Import enum

kelas yesorno (enum.enum):
    Ya = "y"
    Tidak = "N"

    @classmethod
    def _missing_ (cls, nilai):
        "" "
        Kaedah ini dipanggil apabila nilai yang diluluskan tidak sepadan dengan mana -mana ahli penghitungan.
        Ia cuba memetakan pelbagai bentuk input kepada ahli Yes atau tiada penghitungan.
        "" "
        # Tukar nilai input ke huruf kecil untuk perbandingan kes-insensitif normalisasi_value = str (nilai) .lower ()

        jika normal_value dalam ('y', 'ya', 'benar', 't'):
            kembali cls.yes
        elif normalised_value in ('n', 'no', 'false', 'f'):
            kembali cls.no

        # Membuat enum membuang valueerror secara lalai jika tiada borang yang diketahui dipadankan
        # Atau anda boleh menyesuaikan pengecualian lain untuk dilemparkan # menaikkan nilai (f "'{value}' bukan nilai Yesorno yang sah.")

Analisis Kod:

  1. @ClassMethod Decorator : _missing_ mestilah kaedah kelas kerana ia beroperasi pada kelas penghitungan itu sendiri, bukan contoh.
  2. Parameter CLS : mewakili kelas penghitungan Yesorno. Ahli -ahli penghitungan boleh diakses melalui cls.yes dan cls.no.
  3. Parameter Nilai : Ini adalah nilai yang diluluskan ke pembina Yesorno () tetapi tidak sepadan secara langsung mana -mana ahli, contohnya "benar".
  4. normalisasi_value = str (nilai) .lower () : Untuk membuat logik yang sepadan lebih mantap, kami menukar nilai input ke rentetan dan huruf kecil. Ini boleh mengendalikan input dengan kes -kes yang berbeza seperti "benar" dan "ya".
  5. Penghakiman bersyarat :
    • Jika normal_value milik mana -mana ('y', 'ya', 'benar', 't'), kembali cls.yes.
    • Jika normalisasi_value adalah mana -mana ('n', 'tidak', 'palsu', 'f'), kembali cls.no.
  6. Pengendalian Perlawanan Hilang : Jika kaedah _missing_ tidak menemui perlawanan secara dalaman dan mengembalikan ahli penghitungan, maka enum.enum akan membuang valueerror secara lalai. Contohnya, kita tidak membuang secara eksplisit tetapi bergantung pada tingkah laku lalai ini. Jika anda memerlukan maklumat ralat yang lebih spesifik, anda boleh menaikkan ValueError (...) secara manual.

4. Penggunaan dan Pengesahan

Sekarang, kita boleh menguji penghitungan Yesorno yang dipertingkatkan ini:

 # Uji pelbagai input cetak (f "yesorno ('y'): {yesorno ('y')}")
cetak (f "yesorno ('y'): {yesorno ('y')}")
cetak (f "yesorno ('ya'): {yesorno ('ya')}")
cetak (f "yesorno ('true'): {yesorno ('true')}")
cetak (f "yesorno ('t'): {yesorno ('t')}")
cetak (f "yesorno ('n'): {yesorno ('n')}")
cetak (f "yesorno ('false'): {yesorno ('false')}")
cetak (f "yesorno ('no'): {yesorno ('no')}")

# Sahkan bahawa nilai dalaman anggota penghitungan tetap tidak berubah cetakan (f "yesorno.yes.value: {yesorno.yes.value}")
cetak (f "yesorno.no.value: {yesorno.no.value}")

# Cuba input tidak sah cuba:
    Yesorno ("Tidak Diketahui")
Kecuali ValueError sebagai E:
    cetak (f "ralat untuk 'tidak diketahui': {e}")

Contoh Output:

 Yesorno ('Y'): Yesorno.yes
Yesorno ('Y'): Yesorno.yes
Yesorno ('ya'): yesorno.yes
Yesorno ('benar'): Yesorno.yes
Yesorno ('T'): Yesorno.yes
Yesorno ('n'): yesorno.no
Yesorno ('False'): Yesorno.No
Yesorno ('tidak'): yesorno.no
Yesorno.yes.value: y
Yesorno.no.value: n
Ralat untuk 'tidak diketahui': 'tidak diketahui' bukan yesorno yang sah

Ia dapat dilihat dari output bahawa sama ada "benar", "ya" atau "y", ia berjaya dipetakan ke yesorno.yes. Sementara itu, yesorno.yes.value masih "y", yang memenuhi semua keperluan kita.

5. Langkah berjaga -jaga dan amalan terbaik

  • _missing_ hanya dipanggil apabila tiada perlawanan langsung : Jika nilai yang diluluskan dapat secara langsung sepadan dengan nilai ahli penghitungan, kaedah _missing_ tidak akan dipanggil. Sebagai contoh, Yesorno ("Y") akan terus kembali yesorno.yes.
  • Jenis Pulangan : Kaedah _missing_ mesti mengembalikan ahli penghitungan (iaitu, dalam bentuk cls.member), jika tidak, ralat jenis akan dibuang.
  • Pengendalian Pengecualian : Ia sepatutnya membenarkan enum.enum membuang nilai jika _missing_ tidak mengenali nilai lulus, atau pengecualian yang lebih spesifik berdasarkan logik perniagaan. Jangan mengembalikan tiada atau nilai lain yang bukan ahli penghitungan.
  • Pertimbangan Prestasi : Untuk penghitungan yang sangat besar atau senario panggilan frekuensi tinggi, logik dalam _missing_ sepatutnya sebaik mungkin. Jika hubungan pemetaan adalah rumit, pertimbangkan untuk menggunakan kamus untuk precomputation atau caching.
  • Jenis Penukaran : Dalam _Missing_, secara amnya disyorkan untuk menukar nilai kepada jenis seragam (seperti rentetan) dan menormalkannya (seperti .lower ()) untuk mengendalikan pelbagai input.
  • Nota Dokumentasi : Apabila menentukan penghitungan yang mengandungi kaedah _missing_, disyorkan bahawa jenis input dan peraturan pemetaan yang dikendalikannya dinyatakan dengan jelas dalam kelas atau kaedah dokumentasi supaya pemaju lain dapat memahami dan menggunakannya.

Meringkaskan

Dengan mengatasi kaedah kelas _missing_ enum.enum, kami mendapat alat yang berkuasa yang boleh mengendalikan dan memetakan nilai input yang pelbagai tanpa mengubah nilai dalaman penghitungan. Ini sangat meningkatkan keteguhan dan keramahan pengguna penghitungan, yang membolehkan kod kami lebih baik menyesuaikan diri dengan perubahan input luaran, sambil mengekalkan konsistensi dan kejelasan model data dalaman. Kaedah _missing_ tidak diragukan lagi penyelesaian yang patut dipertimbangkan ketika merancang penghitungan yang perlu mengendalikan pelbagai bentuk input.

Atas ialah kandungan terperinci Pengendalian Input Fleksibel Python Enum: Pemahaman yang lebih mendalam mengenai kaedah _missing_. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Stock Market GPT

Stock Market GPT

Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Strategi penggabungan yang cekap bagi penyesuai dan model asas PEFT Lora Strategi penggabungan yang cekap bagi penyesuai dan model asas PEFT Lora Sep 19, 2025 pm 05:12 PM

Tutorial ini memperincikan bagaimana untuk menggabungkan penyesuai LORA PEFT dengan model asas untuk menghasilkan model yang sepenuhnya bebas. Artikel ini menunjukkan bahawa adalah salah untuk menggunakan transformer.automodel secara langsung untuk memuatkan penyesuai dan menggabungkan berat secara manual, dan menyediakan proses yang betul untuk menggunakan kaedah Merge_and_unload di perpustakaan PEFT. Di samping itu, tutorial juga menekankan pentingnya menangani segmen perkataan dan membincangkan isu dan penyelesaian keserasian versi PEFT.

Cara memasang pakej dari fail keperluan.txt di python Cara memasang pakej dari fail keperluan.txt di python Sep 18, 2025 am 04:24 AM

Jalankan pipinstall-rrequirements.txt untuk memasang pakej ketergantungan. Adalah disyorkan untuk mencipta dan mengaktifkan persekitaran maya terlebih dahulu untuk mengelakkan konflik, memastikan bahawa laluan fail adalah betul dan PIP telah dikemas kini, dan menggunakan pilihan seperti-tidak-deps atau-pengguna untuk menyesuaikan tingkah laku pemasangan jika perlu.

Cara Menguji Kod Python dengan Pytest Cara Menguji Kod Python dengan Pytest Sep 20, 2025 am 12:35 AM

Python adalah alat ujian yang mudah dan berkuasa di Python. Selepas pemasangan, fail ujian ditemui secara automatik mengikut peraturan penamaan. Tulis fungsi bermula dengan ujian untuk ujian pernyataan, gunakan @pytest.fixture untuk membuat data ujian yang boleh diguna semula, mengesahkan pengecualian melalui pytest.raises, menyokong menjalankan ujian tertentu dan pelbagai pilihan baris arahan, dan meningkatkan kecekapan ujian.

Cara Mengendalikan Argumen Barisan Perintah di Python Cara Mengendalikan Argumen Barisan Perintah di Python Sep 21, 2025 am 03:49 AM

TheargParsemoduleisThereMendingWayOhandLecommand-lineargumentsinpython, menyediakan robrobustparsing, typevalidation, helpmessages, anderrorhandling; usesy.argvforsimplecasesrequiringminiminalsetup.

Masalah Ketepatan Nombor Titik Terapung di Python dan Skim Pengiraan Ketepatan Tinggi Masalah Ketepatan Nombor Titik Terapung di Python dan Skim Pengiraan Ketepatan Tinggi Sep 19, 2025 pm 05:57 PM

Artikel ini bertujuan untuk meneroka masalah biasa ketepatan pengiraan yang tidak mencukupi bagi nombor titik terapung di Python dan Numpy, dan menjelaskan bahawa punca akarnya terletak pada batasan perwakilan nombor terapung 64-bit standard. Untuk senario pengkomputeran yang memerlukan ketepatan yang lebih tinggi, artikel itu akan memperkenalkan dan membandingkan kaedah penggunaan, ciri-ciri dan senario yang berkenaan dengan perpustakaan matematik ketepatan tinggi seperti MPMATH, SYMPY dan GMPY untuk membantu pembaca memilih alat yang tepat untuk menyelesaikan keperluan ketepatan yang rumit.

Cara menggabungkan penyesuai lora dengan betul dengan model asas Cara menggabungkan penyesuai lora dengan betul dengan model asas Sep 17, 2025 pm 02:51 PM

Artikel ini memperincikan cara menggunakan fungsi Merge_and_unload Perpustakaan PEFT untuk menggabungkan penyesuai LORA secara efisien dan tepat ke dalam model bahasa asas yang besar, dengan itu mewujudkan model baru dengan pengetahuan penalaan yang bersepadu. Artikel ini membetulkan kesalahpahaman umum tentang memuatkan penyesuai dan menggabungkan berat model secara manual melalui transformer.automodel, dan menyediakan contoh kod lengkap termasuk penggabungan model, pemprosesan segmen perkataan, dan panduan profesional untuk menyelesaikan masalah keserasian versi berpotensi untuk memastikan proses penggabungan yang lancar.

Bagaimanakah anda boleh membuat pengurus konteks menggunakan penghias @ContextManager di Python? Bagaimanakah anda boleh membuat pengurus konteks menggunakan penghias @ContextManager di Python? Sep 20, 2025 am 04:50 AM

Import@contextManagerFromContextLibandDefineageneratorfunctionThatTyieldSexactlyonce, whereCodeBeforeyieldActSasenterandCodeAfteryield (PreferitlySinfinal) actsas __

Cara bekerja dengan fail pdf di python Cara bekerja dengan fail pdf di python Sep 20, 2025 am 04:44 AM

PYPDF2, PDFPlumber dan FPDF adalah perpustakaan teras untuk Python untuk memproses PDF. Gunakan pypdf2 untuk melakukan pengekstrakan teks, penggabungan, pemisahan dan penyulitan, seperti membaca halaman melalui pdfreader dan memanggil extract_text () untuk mendapatkan kandungan; PDFplumber lebih sesuai untuk mengekalkan pengekstrakan teks susun atur dan pengiktirafan jadual, dan menyokong extract_tables () untuk menangkap data jadual dengan tepat; FPDF (disyorkan FPDF2) digunakan untuk menjana PDF, dan dokumen dibina dan dikeluarkan melalui add_page (), set_font () dan sel (). Apabila menggabungkan PDF, kaedah tambahan PDFWriter () dapat mengintegrasikan pelbagai fail

See all articles