戻り値がNoneであるかどうかをチェックするPython関数がありますか?そうであれば、MySQLのIFNULL
関数のような別の値に設定できますか?MySQLのIFNULLに相当するPython
5
A
答えて
8
実際には、引数を再バインドできないためです。このよう
if foo is None:
foo = 42
または
def ifnull(var, val):
if var is None:
return val
return var
foo = ifnull(foo, 42)
2
:
x = SOME_VALUE if x is None else x
-2
この質問は今、2歳以上ですので、私は、これは、将来の参照のためのより多くのだと思い:)
何I好きなのはmax('', mightBeNoneVar)
またはmax(0, mightBeNoneVar)
です(状況によって異なります)。
より複雑な例:
print max('', col1).ljust(width1) + ' ==> '+ max('', col2).ljust(width2)
+0
私は少し畳み込まれているようですが、Python 3.xの2.xでのこのような比較は、 'NoneType'は順序付けできないので、 'TypeError' –
8
あなたはすべて "falsy" 値(すなわちNone
、0
、""
、[]
、False
、など)他の特定の値にしてみましょうがすべてそのまま通過を変換したい場合or
を使用できます。例えば:それはtruthyだ、とdefault_value
場合x
の値がfalsyある場合
print (x or default_value)
はx
の値を出力します。
これは、IFNULL
がデータベースのブール値列と数値列のNULLをクリーンアップするためにこの方法でよく使用されるため、このことが言及されています。明らかに、を0
,False
などと異なる方法で処理したい場合は、これは機能しません。
関連する問題
- 1. Hibernate Query LanguageでIFNULLに相当しますか?
- 2. RAISERRORに相当するMySQL
- 3. IFNULLは、MySQL
- 4. Pythonに相当するMySQLの "Left Join" 2組のタプルのリスト
- 5. Pythonに相当するPropertyUtilsBean
- 6. Jstackに相当するPython?
- 7. 'pat2cwav'に相当するPython
- 8. find2perlに相当するPython
- 9. 〜/ .bashrcに相当するPython
- 10. Rubyに相当するPython "_"
- 11. VLOOKUP相当のMySQL
- 12. MySQLのMSSQL IDENTITYカラムに相当する
- 13. mysql whileループブレイク相当
- 14. Pythonのplotly.tools.FigureFactory.create_scatterplotmatrixに相当するR?
- 15. Pythonの `urljoin`に相当するPHP
- 16. Pythonの `str.format`メソッドに相当するPHP?
- 17. Pythonの "Construct"に相当するHaskell
- 18. Python Numpyの "whos"コマンドに相当する
- 19. Pythonに相当するLuaのテーブル
- 20. Matlabのaddpathに相当するPython
- 21. Pythonのstr.strip()に相当するJava
- 22. Rubyの 'method_missing'に相当するPython
- 23. OpenCV:C++の `setTo`に相当するPython
- 24. phpのvirtual()に相当するPython
- 25. Matlabのresample()に相当するPython
- 26. Pythonの 'Requests'に相当する 'curl -o'
- 27. PythonのBASH_XTRACEFDリダイレクションに相当する
- 28. HaskellのPython urllibに相当する
- 29. PythonのC++に相当する__init__
- 30. pythonのstruct.unpackに相当するJava?
'ifnull()'の本体は 'varがNone else var'の場合は' val 'に短縮されます。 –
実際に 'return var or val'に短縮することができます。 –
@IonutHulub:いいえ、' None'以外の値が多いので、falseです。 –