zoukankan      html  css  js  c++  java
  • Python学习札记(三十九) 面向对象编程 Object Oriented Program 10

    参考:使用枚举类

    NOTE

    #!/usr/bin/env python3
    
    from enum import Enum
    
    def main():
    	Mouth = Enum('Mouth', ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'))
    	for name, attr in Mouth.__members__.items():
    		print(name, '=>', attr, '=>', attr.value)
    
    if __name__ == '__main__':
    	main()
    
    sh-3.2# ./oop11.py 
    Jan => Mouth.Jan => 1
    Feb => Mouth.Feb => 2
    Mar => Mouth.Mar => 3
    Apr => Mouth.Apr => 4
    May => Mouth.May => 5
    Jun => Mouth.Jun => 6
    Jul => Mouth.Jul => 7
    Aug => Mouth.Aug => 8
    Sep => Mouth.Sep => 9
    Oct => Mouth.Oct => 10
    Nov => Mouth.Nov => 11
    Dec => Mouth.Dec => 12
    

    1.当我们定义常量的时候,一般使用大写的字母来表示,但是本质上还是需要修改的。

    更好的方法是为这样的枚举类型定义一个class类型,然后,每个常量都是class的一个唯一实例。Python提供了Enum类来实现这个功能。

    枚举类Mouth有12个成员,每个成员默认有value属性,value属性默认从1开始分配。

    2.也可以通过类的继承更好的控制枚举类:

    from enum import Enum, unique
    
    @unique
    class Week(Enum):
    	"""docstring for Week"""
    	Sun = 0
    	Mon = 1
    	Tue = 2
    	Thu = 3
    	Wed = 4
    	Fri = 5
    	Sat = 6
    
    print(Week.Sun)
    print(Week['Tue'])
    print(Week.Fri.value)
    
    Week.Sun
    Week.Tue
    5
    

    a.用成员名称引用枚举常量
    b.根据value的值获得枚举常量

    2017/3/7

  • 相关阅读:
    表单工具可以什么
    页面嵌套的方式展现报表
    EChars图类型
    SVG图类型
    JSP <c:import>和<jsp:include>区别【转】
    Servlet配置
    jsp的scope属性【转载】
    Cookie、Session【转载】
    page、request、session、application区别【转载】
    C++笔记------static 和 const 在类中用法
  • 原文地址:https://www.cnblogs.com/qq952693358/p/6516546.html
Copyright © 2011-2022 走看看