Heim  >  Fragen und Antworten  >  Hauptteil

Python世界中, 有Java中那种 @NotNull 吗( JetBrains提供的 ) ?

2017/2/6

描述

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

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

最厉害的使这个

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

相关代码

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

上下文环境

黄舟黄舟2762 Tage vor590

Antworte allen(2)Ich werde antworten

  • 黄舟

    黄舟2017-04-18 10:19:28

    对于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

    Antwort
    0
  • PHP中文网

    PHP中文网2017-04-18 10:19:28

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

    Antwort
    0
  • StornierenAntwort