Скажем, у меня есть объект с именем Tag, и у меня есть три типа тегов, как указано в переменной экземпляра следующим образом,
class Tag(object):
def __init__(self, name, type):
self.name = name
self.type = type
t1 = Tag("blue", "cold")
t2 = Tag("red", "warm")
t3 = Tag("black", "hot")
Допустим, я допустил только три типа: холодный, теплый и горячий. Было бы лучше пойти проверить, относится ли это к одному из этих типов?
if t1.type == "cold":
# do something
elif t1.type == "warm":
# do something else
else t1.type == "hot":
# do something even elser
Или я должен создать объект типа enum, подобный этому из question ,
class Type:
COLD=1
WARM=2
HOT=3
И вместо этого создать теги, как это?
t1 = Tag("blue", Type.COLD)
Причина, по которой я задаю этот вопрос, заключается в том, что я слышал, что много вычислительной мощности уходит на сравнение строк, и, хотя это короткие слова длиной 3, 4 буквы, возможно, что я проведу десятки тысяч сравнений из этих типов. Как вы думаете, стоит ли создавать объекты enum для определения типа объекта, как в приведенном выше примере? Или есть лучший способ сделать то, что я пытаюсь сделать?