Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Pembangun C# Boleh Mewakili Enum dalam Python?

Bagaimanakah Pembangun C# Boleh Mewakili Enum dalam Python?

Barbara Streisand
Barbara Streisandasal
2024-12-24 07:15:17148semak imbas

How Can C# Developers Represent Enums in Python?

Mewakili Enum dalam Python

Soalan:

Sebagai pembangun C# yang mengusahakan projek Python, bagaimana anda boleh mewakili setara dengan Enum dalam Python?

Jawapan:

Enumerations (Enums) telah diperkenalkan dalam Python 3.4 sebagai sebahagian daripada PEP 435. Mereka juga telah disandarkan kepada versi sebelumnya melalui pihak ketiga perpustakaan seperti enum34 dan aenum.

Menggunakan Modul enum (Python 3.4 ):

from enum import Enum

Animal = Enum('Animal', 'ant bee cat dog')

Ini menghasilkan Enum Haiwan dengan ahli semut, lebah, kucing dan anjing.

Menggunakan Perpustakaan enum34 (Python 2.7 ):

from enum34 import Enum

Animal = Enum('Animal', 'ant bee cat dog')

Menggunakan Perpustakaan aenum (Python 2.7 , 3.3 ):

from aenum import Enum

class Animal(Enum):
    ant = 1
    bee = 2
    cat = 3
    dog = 4

Teknik Terdahulu untuk Python Pra-3.4:

Dalam versi Python yang lebih awal, anda boleh menggunakan tersuai enum() berfungsi untuk mencipta sendiri enums:

def enum(**enums):
    return type('Enum', (), enums)

Numbers = enum(ONE=1, TWO=2, THREE='three')

Teknik Tambahan:

  • Penghitungan automatik: Gunakan fungsi seperti enum(*sequential, **bernama) untuk menjana ahli secara automatik berdasarkan nama yang disediakan.
  • Pemetaan songsang: Tambahkan atribut reverse_mapping pada Enum anda dengan mudah tukar nilai kembali kepada nama.
  • Penaipan MyPy.Literal: Gunakan penaipan.Literal untuk mentakrifkan enum selamat jenis dalam Python 3.8 .

Atas ialah kandungan terperinci Bagaimanakah Pembangun C# Boleh Mewakili Enum 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
Artikel sebelumnya:Bingkai LogikArtikel seterusnya:Bingkai Logik