本文以廖雪峰的官方网站为参考来学习python的。其学习链接为廖雪峰小白学python教程。
本文是学习到python的多重继承。参考链接廖雪峰python使用枚举类。
本学习笔记仅供参考。
>>> from enum import Enum
>>> Month = Enum('Month',('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'))
>>> for name,member in Month.__members__.items():
print(name,'=>',member,',',member.value)
运行结果:
Jan => Month.Jan , 1
Feb => Month.Feb , 2
Mar => Month.Mar , 3
Apr => Month.Apr , 4
May => Month.May , 5
Jun => Month.Jun , 6
Jul => Month.Jul , 7
Aug => Month.Aug , 8
Sep => Month.Sep , 9
Oct => Month.Oct , 10
Nov => Month.Nov , 11
Dec => Month.Dec , 12
from enum import Enum, unique
>>> @unique
class Weekday(Enum):
Sun = 0
Mon = 1
Tue = 2
Wed = 3
Thu = 4
Fri = 5
Sat = 6
>>>
>>> day1 = Weekday.Mon
>>> print(day1)
Weekday.Mon
>>> print(Weekday.Tue)
Weekday.Tue
>>> print(Weekday['Tue'])
Weekday.Tue
>>> print(Weekday.Tue.value)
2
>>> print(day1 == Weekday.Mon)
True
>>> print(day1 == Weekday.Tue)
False
>>> print(Weekday(1))
Weekday.Mon
>>> print(day1 == Weekday(1))
True
如果输入
>>> Weekday(7)
则会报错:
Traceback (most recent call last):
File "<pyshell#27>", line 1, in <module>
Weekday(7)
File "**********", line *****, in __call__
return cls.__new__(cls, value)
File "**********", line ******, in __new__
return cls._missing_(value)
File "***********", line ***, in _missing_
raise ValueError("%r is not a valid %s" % (value, cls.__name__))
ValueError: 7 is not a valid Weekday
>>> for name, member in Weekday.__members__.items():
print(name,'=>',member)
运行结果为:
Sun => Weekday.Sun
Mon => Weekday.Mon
Tue => Weekday.Tue
Wed => Weekday.Wed
Thu => Weekday.Thu
Fri => Weekday.Fri
Sat => Weekday.Sat
练习:
>>> # -*- coding: utf-8 -*-
from enum import Enum, unique
>>>
class Gender(Enum):
Male = 0
Female = 1
>>>
class Student(object):
def __init__(self,name,gender):
self.name = name
self.gender = gender
>>> bart = Student('Bart', Gender.Male)
>>> if bart.gender == Gender.Male:
print('测试通过!')
else:
print('测试失败!')
运行结果:
测试通过!