前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >pydantic学习与使用-9.枚举类型(enum)

pydantic学习与使用-9.枚举类型(enum)

作者头像
上海-悠悠
发布于 2022-03-03 07:35:22
发布于 2022-03-03 07:35:22
1.7K00
代码可运行
举报
运行总次数:0
代码可运行

前言

python3 内置的enum 模块可以支持枚举类型,此模块定义了四个枚举类,用来定义名称与值的唯一组合: Enum、IntEnum、Flag 和 IntFlag。此外,还定义了一个装饰器unique(), 和一个辅助类auto。 枚举是由 class 句法创建的,这种方式易读、易写。

枚举类型

pydantic使用 python 的标准enum类来定义选择。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from enum import Enum, IntEnum

from pydantic import BaseModel, ValidationError

class FruitEnum(str, Enum):
    pear = 'pear'
    banana = 'banana'

class ToolEnum(IntEnum):
    spanner = 1
    wrench = 2

创建数据模型,字段设置为前面定义的枚举类型

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class CookingModel(BaseModel):
    fruit: FruitEnum = FruitEnum.pear
    tool: ToolEnum = ToolEnum.spanner

print(CookingModel())
#> fruit=<FruitEnum.pear: 'pear'> tool=<ToolEnum.spanner: 1>
print(CookingModel(tool=2, fruit='banana'))
#> fruit=<FruitEnum.banana: 'banana'> tool=<ToolEnum.wrench: 2>
try:
    CookingModel(fruit='other')
except ValidationError as e:
    print(e)
    """
    1 validation error for CookingModel
    fruit
      value is not a valid enumeration member; permitted: 'pear', 'banana'
    (type=type_error.enum; enum_values=[<FruitEnum.pear: 'pear'>,
    <FruitEnum.banana: 'banana'>])
    """

fruit 和 tool 参数传值就只能是前面定义的,传其它值会抛异常

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-02-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
mysql行转列、列转行
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/130537.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/01
7.4K0
mysql行转列、列转行
mysql行转列,列转行
行转列,列转行是我们在开发过程中经常碰到的问题。行转列一般通过CASE WHEN 语句来实现,也可以通过 SQL SERVER 2005 新增的运算符PIVOT来实现。用传统的方法,比较好理解。层次清晰,而且比较习惯。 但是PIVOT 、UNPIVOT提供的语法比一系列复杂的SELECT...CASE 语句中所指定的语法更简单、更具可读性。下面我们通过几个简单的例子来介绍一下列转行、行转列问题。
yaphetsfang
2020/07/30
10.3K0
mysql行转列,列转行
oraclesql面试题sql笔试题_oracle高级面试题
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说oraclesql面试题sql笔试题_oracle高级面试题,希望能够帮助大家进步!!!
Java架构师必看
2022/09/26
4450
sql进阶 - 行转列
用excel可以轻松实现行转列,用sql怎么实现呢?类似从图一转行成图二的功能:
披头
2019/12/26
7000
Hive经典面试题之连续登录、行转列和列转行
在日常工作进行数据的ETL或者面试时,经常遇到类似的问题,比如"统计连续N天交易额超过100万的店铺"、"统计连续登录天数超过3天的用户"等。对于这类问题,思路基本都是一样的。本文将介绍常用的两种解决方案。
大数据学习与分享
2021/06/10
8990
【Apache Doris】行列转换 最佳实践指南
行列转换就是如下图所示两种展示形式的互相转换行转列我们来看一个简单的例子,我们要把下面第一个表格的数据转换成下边第二个表格的样式
一臻数据
2024/12/24
4080
【Apache Doris】行列转换 最佳实践指南
hive行转列/列转行
先用concat_ws函数将将星座和血型用“,”连接后group by 用collect_set函数对name聚合,用concat_ws函数对聚合后的name用“|”分割
chimchim
2022/11/13
2.1K0
hive行转列/列转行
MySQL的行转列
所谓的行转列操作,就是将一个表的行信息转化为列信息,说着可能比较笼统,这里先举个例子,如下:
AsiaYe
2019/11/06
13.5K0
数据库表行列转换
行转列: 创建表kecheng,并插入数据 insert into kecheng (id, name, course, score) values (1, '张三', '语文', 67); insert into kecheng (id, name, course, score) values (1, '张三', '数学', 76); insert into kecheng (id, name, course, score) values (1, '张三', '英语', 43); ins
一觉睡到小时候
2019/07/03
1.2K0
数据库表行列转换
这些SQL使用技巧-行转列,你知道吗?(3)
使用了三个CASE语句将不同科目的成绩转换为了列,并使用聚合函数MAX来获取每个学生在每门课程上的最高得分。
万能数据的小草
2024/07/23
1920
这些SQL使用技巧-行转列,你知道吗?(3)
MySQL行转列实现和总结
暂且将原先的表称为A,之后的称为B,A想成为B,主要是讲A表中cource列中的行数据变为列,抠除行转列的语法之外,使用了GROUP BY cname进行分组,A表的业务主键是cname和cource,这是一个联合主键。
全栈程序员站长
2022/07/01
1.2K0
5分钟搞懂MySQL - 行转列
  这里如果不使用SUM()会报sql_mode=only_full_group_by相关错误,需要聚合函数和group by连用或使用distinct才可以解决。
码农编程进阶笔记
2022/08/18
1.7K0
5分钟搞懂MySQL - 行转列
Kettle使用_27 行转列与列转行方法汇总
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说Kettle使用_27 行转列与列转行方法汇总,希望能够帮助大家进步!!!
Java架构师必看
2021/12/01
3K0
Kettle使用_27 行转列与列转行方法汇总
SQL 行转列,列转行
PIVOT 后跟一个聚合函数来拿到结果,FOR 后面跟的科目是我们要转换的列,这样的话科目中的语文、数学、英语就就被转换为列。IN 后面跟的就是具体的科目值。
李英杰同学
2019/12/30
2.2K0
listagg()行转列函数[通俗易懂]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/10/04
1.7K0
listagg()行转列函数[通俗易懂]
sql server 行转列 Pivot UnPivot
PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现
乔达摩@嘿
2020/09/11
1.9K0
Oracle行转列,pivot函数和unpivot函数
这些中文字段名比较刺眼,王五的 英语列和 数学列也为空不好看 我们这边强壮下sql
overme
2022/01/17
9040
Oracle行转列,pivot函数和unpivot函数
【Hive】SQL语句大全
继承 org.apache.hadoop.hive.ql.udf.generic.GenericUDTF;
全栈程序员站长
2022/08/30
2.6K0
一套简单实用的SQL脚本,总有你需要的
title在和titleofcourtesy进行拼接后符合条件的就只有ID为6,7,8,9的了
猴哥yuri
2019/12/05
4920
建议收藏丨sql行转列的一千种写法!!
              那9个字,犹如一声惊雷,在这个热情的群里炸开了锅...
不吃西红柿
2022/07/29
1.4K0
建议收藏丨sql行转列的一千种写法!!
相关推荐
mysql行转列、列转行
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验