Python世界中, 有Java中那种 @NotNull 吗( JetBrains提供的 ) ?
黄舟
黄舟 2017-04-18 10:17:28
0
2
549

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...

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

모든 응답 (2)
黄舟

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

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

      최신 다운로드
      더>
      웹 효과
      웹사이트 소스 코드
      웹사이트 자료
      프론트엔드 템플릿
      회사 소개 부인 성명 Sitemap
      PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!