Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Melaksanakan dan Menggunakan Penghitungan dalam Python?

Bagaimanakah Saya Melaksanakan dan Menggunakan Penghitungan dalam Python?

Susan Sarandon
Susan Sarandonasal
2024-12-20 06:16:08975semak imbas

How Do I Implement and Use Enumerations in Python?

Melaksanakan Penghitungan dalam Python

Python menyediakan modul enum terbina dalam dalam Python 3.4 ke atas. Modul ini membenarkan perwakilan penghitungan, yang merupakan koleksi pemalar bernama. Untuk menggunakannya, anda boleh mengikuti langkah berikut:

  1. Import modul enum:

    import enum
  2. Tentukan penghitungan:

    Animal = enum.Enum('Animal', 'ant bee cat dog')
  3. Akses ahli penghitungan:

    Animal.ant  # returns <Animal.ant: 1>
    Animal['ant']  # returns <Animal.ant: 1> (string lookup)
    Animal.ant.name  # returns 'ant' (inverse lookup)

Sebagai alternatif, anda boleh mentakrifkan penghitungan menggunakan pendekatan berasaskan kelas:

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

Versi Python Terdahulu

Dalam versi Python terdahulu, anda boleh mencipta fungsi enum tersuai anda sendiri menggunakan kelas:

class Enum(object):
    def __init__(self, *args):
        self.keys = args

    def __getattr__(self, attr):
        try:
            return attr, self.keys.index(attr)
        except:
            raise AttributeError(attr)

Menggunakan menaip.Literal dalam MyPy

Apabila menggunakan MyPy untuk semakan jenis, anda juga boleh menyatakan penghitungan menggunakan menaip.Literal:

from typing import Literal

Animal: Literal['ant', 'bee', 'cat', 'dog']

Atas ialah kandungan terperinci Bagaimanakah Saya Melaksanakan dan Menggunakan Penghitungan 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