在 TypedDict 中使用非法属性名
原文由 Alex O'Callaghan 于 发布,订阅该博客
之前我介绍过为 TypedDict 值使用泛型类型的方法,不过在使用 TypedDict 时还会遇到另一个问题,那就是键名不是有效的标识符的情况。在 Python 中,标识符(或名称)可包含的字符是有限的(一般只有大写和小写字母 A 到 Z、下划线 _ 以及数字 0 到 9)。
通常你会通过定义类来使用 TypedDict:
from typing import TypedDict
class Book(TypedDict):
id: int
name: str
book: Book = {"id": 123, "name": "To Kill A Mockingbird"}不过,如果某个键不是有效的标识符——比如包含了句点 . 或连字符 -——这种写法就行不通了:
from typing import TypedDict
class Book(TypedDict):
id: int
name: str
some-hyphen-field: str
field.dot: str这种情况下,你可以使用函数式语法:
from typing import TypedDict
Book = TypedDict(
'Book',
{
"id": int,
"name": str,
"some-hyphen-field": str,
"field.dot": str
}
)随机一篇博客
评论
登录后参与讨论