Skip to content

变量和类型怎么服务业务字段

示例文件:field_types.py
最后核验:2026-08-02

这篇文章把字符串、数字、布尔值和空值放回客户字段里。重点不是背类型名,而是判断字段应该怎样被使用。

这篇解决什么问题

客户表里常见字段看起来都像“内容”,但用途完全不同:

  • 姓名、手机号、城市:主要用于展示、匹配、判空。
  • 订单金额、购买次数:需要求和、比较和统计。
  • 是否会员、是否已回访:只有是或否。
  • 最近联系时间为空:表示缺失或没有记录。

类型选错,规则就可能错。

核心判断

text
用于展示和匹配 -> 字符串
用于计算和比较 -> 数字
用于是否判断 -> 布尔值
用于缺失状态 -> 空值或默认值

先问字段要做什么,再决定类型。

本集示例

运行:

bash
python3 field_types.py

它会输出客户字段、示例值、推荐类型和用途。

完整代码

python
from __future__ import annotations

from datetime import date


customer = {
    "name": "李雷",
    "phone": "013800000001",
    "city": "上海",
    "order_amount_text": "1200.50",
    "order_count_text": "3",
    "is_vip": True,
    "last_contact": None,
}


field_specs = [
    ("name", customer["name"], "str", "展示客户姓名"),
    ("phone", customer["phone"], "str", "保留前导零和格式"),
    ("city", customer["city"], "str", "筛选和分组"),
    ("order_amount", float(customer["order_amount_text"]), "float", "计算订单金额"),
    ("order_count", int(customer["order_count_text"]), "int", "计算购买次数"),
    ("is_vip", customer["is_vip"], "bool", "判断会员状态"),
    ("last_contact", customer["last_contact"], "None", "表示暂时没有联系记录"),
]

字段类型说明表

字段示例推荐类型原因
name李雷str用于展示和匹配
phone013800000001str不用于计算,要保留格式
city上海str用于筛选和分组
order_amount1200.50float需要求和和比较
order_count3int表示次数
is_vipTruebool表示是否
last_contactNoneNone 或日期表示缺失或日期

常见误区

误区后果修正
手机号转数字前导零丢失,格式不可控手机号按字符串保存
金额一直当文本不能正确求和和比较检查格式后转成数字
空字符串和缺失不区分无法判断是否需要补资料为关键字段写明确规则
所有字段都先转换坏数据会让脚本提前失败先检查,再转换

修改成自己的场景

  1. 列出表头字段。
  2. 为每个字段写一个示例值。
  3. 写清用途:展示、计算、判断、分组还是缺失检查。
  4. 再决定推荐类型。

读完之后能完成什么

你应该能为客户表写出一张字段说明表,并解释为什么手机号是字符串、金额是数字、是否会员是布尔值。

继续学习

别急,先让缓存热一下。