python中的参数类型_如何确保Python中的参数类型正确?

如果要使用语法def function(a: int):

pass

@simeonviser提到,你有python3.5,你可以使用我写的装饰器from typing import get_type_hints

def strict_types(f):

def type_checker(*args, **kwargs):

hints = get_type_hints(f)

all_args = kwargs.copy()

all_args.update(dict(zip(f.__code__.co_varnames, args)))

for key in all_args:

if key in hints:

if type(all_args[key]) != hints[key]:

raise Exception('Type of {} is {} and not {}'.format(key, type(all_args[key]), hints[key]))

return f(*args, **kwargs)

return type_checker

在定义这样的函数时@strict_types

def concatenate_with_spam(text: str) -> str:

return text + 'spam'

如果传递给函数的参数类型错误,则会引发异常。Traceback (most recent call last):

File "strict_types.py", line 23, in

concatenate_with_spam(1)

File "strict_types.py", line 13, in type_checker

raise Exception('Type of {} is {} and not {}'.format(key, type(all_args[key]), hints[key]))

Exception: Type of text is and not

虽然我还没有实现一种方法来检查您返回的内容的类型,而且如果您也想检查,这个解决方案也不适合您。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值