我使用的是Python3.6,我想定义一个函数,它接受两个整数a
和b
,并返回它们的除法c = a//b
。我想在不使用assert
的情况下强制使用输入和输出类型。根据我在文档和本网站上发现的内容,我的理解是,应该这样定义这个函数:
def divide(a: int, b: int) -> int:
c = a // b
return c
divide(3, 2.) # Output: 1.0
我期待一个错误(或警告),因为b
和c
不是整数。
assert
的情况下正确指定输入和输出类型?发布于 2018-06-09 05:23:31
强制运行时验证目前仅由用户代码完成,例如使用第三方库。
enforce就是这样一种选择
>>> import enforce # pip install enforce
>>> @enforce.runtime_validation
... def divide(a: int, b: int) -> int:
... c = a // b
... return c
...
...
>>> divide(3, 2.0)
RuntimeTypeError:
The following runtime type errors were encountered:
Argument 'b' was not of type <class 'int'>. Actual type was float.
https://stackoverflow.com/questions/50768522
复制相似问题