首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在不使用assert的情况下指定函数输入和输出的类型?

如何在不使用assert的情况下指定函数输入和输出的类型?
EN

Stack Overflow用户
提问于 2018-06-09 05:19:52
回答 1查看 72关注 0票数 4

我使用的是Python3.6,我想定义一个函数,它接受两个整数ab,并返回它们的除法c = a//b。我想在不使用assert的情况下强制使用输入和输出类型。根据我在文档和本网站上发现的内容,我的理解是,应该这样定义这个函数:

代码语言:javascript
复制
def divide(a: int, b: int) -> int:
    c = a // b
    return c

divide(3, 2.) # Output: 1.0

我期待一个错误(或警告),因为bc不是整数。

  1. 我的特定代码有什么问题?
  2. 如何在不使用assert的情况下正确指定输入和输出类型?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-09 05:23:31

强制运行时验证目前仅由用户代码完成,例如使用第三方库。

enforce就是这样一种选择

代码语言:javascript
复制
>>> 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.
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50768522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档