我想在 python 中输入注释一个只接受单个字符的函数,例如:\n(s: str) -> int
由于 Python 没有单个字符的类型,因此您不能只执行类似(s: char) -> int.
有没有一种方法可以让键入的内容s: str只能是一个字符?
我发现这对于编写代码时的提示很有用。
\n这是我的完整示例:
\nimport unicodedata\n\nroman_numeral_lookup = {"I": 1, "V": 5, "X": 10, ...}\n\ndef exact_roman_numeral(s: str) -> int:\n """Return the value of a single Roman numeral. Dosen\'t support multicharacter roman numerals such as \'XII\' or Apostrophus."""\n\n # Convert Unicode Roman numerals into to their normalised text version. e.g. \xe2\x85\xa9 -> X, \xe2\x85\xb0 -> I\n s = unicodedata.normalize("NFKC", s).upper()\n\n if s in roman_numeral_lookup:\n return roman_numeral_lookup[s]\n\n else: # Some form of invalid value.\n if not isinstance(s, str):\n raise TypeError("Argument must be of type str.")\n elif len(s) != 1:\n raise ValueError("Must be a single Roman numeral.")\n else:\n raise ValueError("Not a valid/supported Roman numeral.")\nRun Code Online (Sandbox Code Playgroud)\n(我知道错误不是最好的)
\n好吧,理论上,类型注释不应该像您希望的那样使用 - 这意味着,并非代码中的每个约束都应该由类型注释来表达。
现在,为了回答你的问题,你当然可以构建自己的类型注释,但在我看来,这会是太多的工作而结果太少。
SO 上还有其他答案,描述了如何定义自定义注释
您可以随时:
| 归档时间: |
|
| 查看次数: |
3319 次 |
| 最近记录: |