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

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のデコレータで解決できると思います

リーリー
いいねを押す +0
Ty80

弱い質問ですが、if return_value is None: を使用して直接解決できますか?

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!