次のコードを書くためのより良い方法がありますか?私は何をしたい機能が「A」としてキー引数を渡す場合、それはキーワード引数で指定された「」場合は取得するだけでkwargsキーが渡された場合の文字列の追加方法
def testFunc(**kwargs):
b = '' if not 'a' in kwargs else '//{}'.format(kwargs['a'])
print(b)
testFunc()
testFunc(a='this')
次のコードを書くためのより良い方法がありますか?私は何をしたい機能が「A」としてキー引数を渡す場合、それはキーワード引数で指定された「」場合は取得するだけでkwargsキーが渡された場合の文字列の追加方法
def testFunc(**kwargs):
b = '' if not 'a' in kwargs else '//{}'.format(kwargs['a'])
print(b)
testFunc()
testFunc(a='this')
使用dict.get()
空の文字列を渡し、他の評価にいくつかの文字列を追加しています。そして、それは存在していないですが、デフォルトの戻り値は''
の場合:
b = kwargs.get('a', '')
if b:
b = '//{}'.format(b)
最初の割り当ては、辞書から'a'
を取得し、b
に割り当てます。次にb
が空でない場合(''
)、'//'
で再フォーマットしてください。
編集:「a」がkwargsで提供されていないが空(''
)の場合、b
も空で、「//」ではないと仮定します。現在のコードで'a'
が指定されていて空の場合、b
は'//'
になります。空の場合、または空の文字列b
の両方が得られるようにa
の場合は、私のバージョンを使用してください。それ以外の場合、バージョンは問題ありませんが、MartinPがコメントに入れているように... if 'a' not in kwargs else ...
に変更してください。
元のコードは、 'a'が提供されていない場合、' b = '//' 'ではなく' b = '' 'を生成します。 – user2357112
はい、aが提供されない場合、空の文字列としてパスbが存在し、存在していればb = '//' + kwargsの変数 – jacobcan118
呼び出し元が 'a = '' '。 – user2357112
'a'パラメータだけに興味があるのなら、正確にkwargsを受け入れますか? 'a'を通常のパラメータにできない理由は何ですか?いくつかのコンテキストが役に立ちます。 –
それは単なるコードです、私は実際には私の関数でもっと論理を持っています – jacobcan118
'...' kwargs' else ... 'ではないなら、ここで改善するものはありません。 –