【发布时间】:2022-01-23 00:40:05
【问题描述】:
“char”或“character”没有内置的原始类型,因此显然必须使用长度为 1 的字符串。但是要暗示这一点并暗示它应该被视为一个字符,如何通过类型提示来实现呢?
grade: chr = 'A'
一种方法可能是使用内置的 'chr' 函数来暗示这一点。
grade: "char" = 'A'
grade: "character" = 'A'
另一种方法可能是使用字符串类型提示来暗示这一点。
据我了解,“打字”模块中没有包含 char 类型的对象。
我搜索过的其他帖子说明了为什么某些类型提示(例如使用内置函数“chr”来表示字符)完全是错误的: Is there a PEP484 type hint for 'character'?
但是,对于应该使用什么来表示字符,没有人给出答案。使用“str”类型提示并记录它应该被视为一个字符不是我正在寻找的答案。
grade: str = 'A' # Treat as if it were a character
我想知道在python中我应该用什么来表示“char”/“character”类型?
为了清楚起见进行编辑:我要求的是类型提示,而不是额外的计算或其他任何东西......如果我要求的是字符串长度检查或某种变体,我不会问这个问题。
【问题讨论】:
-
如果这是字母等级,那么也许您可以使用enum 代替?它可以用于类型提示,它会限制用户添加错误的字符串。
-
@liveware 给出的成绩示例纯粹是为了举例。我一般都在问,应该用什么来表示字符。
-
我相信你在技术上可以使用
Literal["\u0000", "\u0001", "\u0002", "\u0003", …],但这会比较长。
标签: python python-3.x type-hinting