Оператор сопоставления Python с перечислениемPython

Программы на Python
Ответить
Anonymous
 Оператор сопоставления Python с перечислением

Сообщение Anonymous »

Я пытаюсь сопоставить «заголовок» с одним из типов заголовков в моем классе ENUM. Я попробовал заголовок, соответствующий Header.PROFILE_NAME, Header.PROFILE_NAME.name, Header.PROFILE_NAME.name. Однако пока ничего из этого не сработало. О нем тоже не могу найти много информации. Надеюсь, кто-нибудь сможет мне помочь в этом вопросе. Заранее приветствую.
from enum import Enum

class Header(Enum):
PROFILE_NAME = None
FIRSTNAME = None
LASTNAME = None
EMAIL = None
PHONE = None
STREET = None
HOUSE = None
ADDRESS2 = None
CITY = None
STATE = None
COUNTRY = None
CARD_TYPE = None
CARD_NUMBER = None
CARD_EXP_MONTH = None
CARD_EXP_YEAR = None
CARD_CVV = None

def setProfiles():
with open('profiles.csv', 'r') as profilesFile:
profiles = csv.reader(profilesFile)

# Sets CSV header name to index
for index, profile in enumerate(profiles):
if(index == 0):
for index, header in enumerate(profile):
match header:
case Header.PROFILE_NAME.name:
print("profile")
#Header.PROFILE_NAME.value = index
case Header.FIRSTNAME.name:
print("firstn")
#Header.FIRSTNAME.value = index
case Header.LASTNAME.name:
print("last")
Header.LASTNAME._value_ = index
case Header.EMAIL:
Header.EMAIL._value_ = index
case Header.PHONE:
Header.PHONE._value_ = index
case Header.STATE:
Header.STATE._value_ = index
case Header.HOUSE:
Header.HOUSE._value_ = index
case Header.ADDRESS2:
Header.ADDRESS2._value_ = index
case Header.CITY:
Header.CITY._value_ = index
case Header.STATE:
Header.STATE._value_ = index
case Header.COUNTRY:
Header.COUNTRY._value_ = index
case Header.CARD_TYPE:
Header.CARD_TYPE._value_ = index
case Header.CARD_NUMBER:
Header.CARD_NUMBER._value_ = index
case Header.CARD_EXP_MONTH:
Header.CARD_EXP_MONTH._value_ = index
case Header.CARD_EXP_YEAR:
Header.CARD_EXP_YEAR._value_ = index
case Header.CARD_CVV:
Header.CARD_CVV._value_ = index

# Creates profile and sets info
else:
#print(Header.PROFILE_NAME)
# print(Header.FIRSTNAME)
createProfile = Profile()
for index, info in enumerate(profile):
match index:
case index if index == Header.PROFILE_NAME:
createProfile.profileName = info
case index if index == Header.FIRSTNAME:
createProfile.firstName = info
case index if index == Header.LASTNAME:
createProfile.lastName = info
case index if index == Header.EMAIL:
createProfile.email = info
case index if index == Header.PHONE:
createProfile.phone = info
case index if index == Header.STREET:
createProfile.street = info
case index if index == Header.HOUSE:
createProfile.house = info
case index if index == Header.ADDRESS2:
createProfile.address2 = info
case index if index == Header.CITY:
createProfile.city = info
case index if index == Header.STATE:
createProfile.state = info
case index if index == Header.COUNTRY:
createProfile.country = info
case index if index == Header.CARD_TYPE:
createProfile.cardType = info
case index if index == Header.CARD_NUMBER:
createProfile.cardNumber = info
case index if index == Header.CARD_EXP_MONTH:
createProfile.cardExpiryMonth = info
case index if index == Header.CARD_EXP_YEAR:
createProfile.cardExpiryYear = info
case index if index == Header.CARD_CVV:
createProfile.cardCVV = info


Подробнее здесь: https://stackoverflow.com/questions/744 ... -with-enum
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»