mypy 真的很方便并且可以捕获很多错误,但是当我编写“科学”应用程序时,我通常会这样做:
def my_func(number: Union[float, int]):
# Do something
number
是浮点数还是整数,具体取决于用户的输入。有官方的方法吗?
原文由 JPFrancoia 发布,翻译遵循 CC BY-SA 4.0 许可协议
mypy 真的很方便并且可以捕获很多错误,但是当我编写“科学”应用程序时,我通常会这样做:
def my_func(number: Union[float, int]):
# Do something
number
是浮点数还是整数,具体取决于用户的输入。有官方的方法吗?
原文由 JPFrancoia 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以定义自己的类型来解决这个问题并保持代码更简洁。
FloatInt = Union[float, int]
def my_func(number: FloatInt):
# Do something
原文由 Curt Welch 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
2 回答857 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
仅 使用
float
,因为int
隐含在该类型中:PEP 484 类型提示 特别指出:
(大胆强调我的)。
理想情况下,您仍会使用
numbers.Real
:因为那会接受
fractions.Fraction()
和decimal.Decimal()
对象;数字金字塔不仅仅是整数和浮点值。但是,当使用
mypy
进行类型检查时,这些目前不起作用,请参阅 Mypy #3186 。