玩蛇网提供最新Python编程技术信息以及Python资源下载!

Python里面有Java中那种 @NotNull 吗?

2017/2/6

描述

在写Java的过程中, 这两个东西非常有用( 对付null )

那么, Python世界中, 可否有类似实现 ?

  • 检查函数的返回值 ( @NotNull 提供 )

  • 检查函数的形参( @NotNull 提供 )

  • 提醒对返回值进行check ( @Nullable提供 )

最厉害的使这个

public String someMethod(@NotNull String var1, @NotNull int var2, float var3)

相关代码

  • 检查函数的返回值, python装饰器应该不难做到

def return_value_not_none(fn):
    @functools.wraps(fn)
    def wrapper(*arg, **kw):
        return_value = fn(*args, **kw)
        
        if return_value is None:
            raise TypeError('return value can not be None')
        else:
            return return_value
   return wrapper


@return_value_not_none
def test(a):
    if a > 0:
        return a
    else:
        return None

上下文环境

  • Jetbrains提供的 @NotNull: https://blog.jetbrains.com/id...

  • 对应的blog: https://blog.jetbrains.com/id...

弱弱的问句 我是不是可以直接用 if return_value is None:来解决

对于java并不太熟悉,但是我觉得Python的装饰器是可以解决的.

def value_not_none(fn, **kwargs):
    @functools.wraps(fn)
    def wrapper(*arg, **kw):
        for k,v in kw.items():
            if kw[k] is None:
                raise TypeError('%s value can not be None' % )
        return_value = fn(*args, **kw)
        return return_value
   return wrapper

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd14130.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
修订日期:2017年05月19日 - 13时01分28秒 发布自玩蛇网

您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容
我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules