Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan penghitungan dalam Python

Bagaimana untuk melaksanakan penghitungan dalam Python

WBOY
WBOYke hadapan
2023-05-11 16:28:141186semak imbas

Gunakan kelas biasa untuk melaksanakan penghitungan secara langsung

Dalam Python, penghitungan adalah sama dengan pembolehubah kelas yang kita takrifkan dalam objek Setiap pembolehubah kelas ialah item penghitungan item penghitungan akses ialah: nama kelas ditambah pembolehubah kelas, seperti ini:

class color():
    YELLOW  = 1
    RED     = 2
    GREEN   = 3
    PINK    = 4
 
# 访问枚举项
print(color.YELLOW) # 1

Walaupun ini boleh menyelesaikan masalah, ia tidak ketat dan tidak begitu selamat, seperti:

1 kelas enumerasi, sepatutnya tiada item penghitungan (pembolehubah kelas) dengan kunci yang sama

2 Tidak dibenarkan mengubah suai nilai item penghitungan secara langsung di luar kelas

class color():
    YELLOW  = 1
    YELLOW  = 3   # 注意这里又将YELLOW赋值为3,会覆盖前面的1
    RED     = 2
    GREEN   = 3
    PINK    = 4
 
# 访问枚举项
print(color.YELLOW) # 3
 
# 但是可以在外部修改定义的枚举项的值,这是不应该发生的
color.YELLOW = 99
print(color.YELLOW) # 99

Penyelesaian: Gunakan modul enum

Modul enum ialah modul terbina dalam sistem dan boleh diimport terus Walau bagaimanapun, semasa mengimport, tidak disyorkan untuk menggunakan enum import untuk memindahkan semua data dalam modul enum Import, secara amnya item yang paling biasa digunakan ialah Enum, IntEnum dan unik dalam modul enum

# 导入枚举类
from enum import Enum
 
# 继承枚举类
class color(Enum):
    YELLOW  = 1
    BEOWN   = 1 
    # 注意BROWN的值和YELLOW的值相同,这是允许的,此时的BROWN相当于YELLOW的别名
    RED     = 2
    GREEN   = 3
    PINK    = 4
 
class color2(Enum):
    YELLOW  = 1
    RED     = 2
    GREEN   = 3
    PINK    = 4

Gunakan kelas penghitungan anda sendiri:

print(color.YELLOW) # color.YELLOW
print(type(color.YELLOW)) # <enum &#39;color&#39;>
 
print(color.YELLOW.value)  # 1
print(type(color.YELLOW.value)) # <class &#39;int&#39;>
 
print(color.YELLOW == 1)    # False
print(color.YELLOW.value == 1)  # True
print(color.YELLOW == color.YELLOW)  # True
print(color.YELLOW == color2.YELLOW)  # False
print(color.YELLOW is color2.YELLOW)  # False
print(color.YELLOW is color.YELLOW)  # True
 
print(color(1))         # color.YELLOW
print(type(color(1)))   # <enum &#39;color&#39;>
  注意事项如下:

1 classes tidak boleh digunakan Instantiate object

2. Untuk mengakses item dalam kelas enumerasi, hanya gunakan nama kelas untuk mengakses terus ditambah item yang ingin diakses, seperti warna.KUNING

3 . Kelas Penghitungan Kunci = Nilai yang ditakrifkan di dalam tidak boleh diubah suai di luar kelas, yang bermaksud pendekatan berikut adalah salah

color.YELLOW = 2  # Wrong, can&#39;t reassign member

4. Item penghitungan boleh digunakan untuk perbandingan, menggunakan ==, atau adalah 

5. Selepas mengimport Enum, Kunci dan Nilai dalam kelas penghitungan tidak boleh sama, dan nilainya boleh sama, tetapi kunci dengan nilai yang sama akan digunakan sebagai alias

6. Jika anda ingin menghitung kelas Nilai dalam hanya boleh menjadi nombor integer, maka anda boleh mengimport IntEnum dan kemudian mewarisi IntEnum Ambil perhatian bahawa pada masa ini, jika nilai ialah nombor rentetan, tiada ralat akan dilaporkan:

from enum import IntEnum

7 Jika Jika kunci dalam kelas penghitungan tidak boleh sama, maka apabila mengimport Enum, anda perlu mengimport fungsi unik

from enum import Enum, unique
.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan penghitungan dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam