使用枚举类和元类

from enum import Enum

Month = Enum('Month', ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'))

获得了Month类型的枚举类,可以直接使用Month.Jan来引用一个常量

#???这个不知道什么意思
>>>Month.__members__.items()

创建类的三种方式:

  1. 正常情况下,我们都用class Xxx...来定义类

  2. 但是,type()函数也允许我们动态创建出类来

>>> Hello = type('Hello', (object,), dict(hello=fn)) # 创建Hello class

要创建一个class对象,type()函数依次传入3个参数:

  • class的名称;
  • 继承的父类集合,注意Python支持多重继承,如果只有一个父类,别忘了tuple的单元素写法;
  • class的方法名称与函数绑定,这里我们把函数fn绑定到方法名hello上。
  1. 先定义metaclass,就可以创建类,最后创建实例。正常情况下,你不会碰到需要使用metaclass的情况。先留着不看了。。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. 使用__slots__ 正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实...
    时间之友阅读 2,286评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,095评论 19 139
  • 什么是元类? 理解元类(metaclass)之前,我们先了解下Python中的OOP和类(Class) 面向对象全...
    时间之友阅读 2,806评论 0 0
  • 前言 第十二篇了,撸起袖子,就是干。 目录 一、Python 中类也是对象 在了解元类之前,我们先进一步理解 Py...
    GitHubClub阅读 4,106评论 0 7
  • 中秋节的书法作业,陪女儿第一次毛笔写书法,从来没写过这么多字。 对比于女儿的作品,着实惭愧!不过比较自己儿时的书法...
    韧性十足的牛皮糖阅读 2,548评论 0 0

友情链接更多精彩内容