2017-08-30 6 views
1

これを行うにはもっとpythonicな方法がありますか?条件がTrueの場合、キーワード引数を渡す

if condition: 
    return f(x, y, z=1) 
else: 
    return f(x, y) 
+0

このような単純なコード、私は "もっとpythonic"であることを心配しません。読みやすさを維持するためにそのまま保管しておきます。 – Sayse

答えて

2

条件付きでごkwargsからのビルド:あなたは三条件を使用して、それを平らにすることができますが、

kwargs = {} 
if condition: 
    kwargs['z'] = 1 

return f(x, y, **kwargs) 
+7

おそらく単一のkwargのために最高ではありません。 –

+2

確かに、あなたはこの特定のケースでもっと簡単に何かに煮詰めることができますが、それは私が追求する一般的なアプローチです。 – deceze

0
return f(x, y, z=condition) 

条件がブール値である場合;)

+1

しかし、 '' z''は数値であり、デフォルト値はわかりません(私たちが知っているすべてに対して '' -1''や '' None'')。 –

+0

それは本当です。問題は、この質問がそれについての十分な情報を提供していないということです... – campovski

3

あなたのソリューションは、十分なPython的になります。

return f(x, y, z=1) if condition else f(x, y) 
関連する問題