変数のチェックと割り当てのためのPythonショートカットはありますか?
質問
次のように入力していることに気づきました(関連する場合はDjangoの開発中です):
if testVariable then:
myVariable = testVariable
else:
# something else
別の方法として、より一般的に(つまり、パラメーターリストを作成する)
if 'query' in request.POST.keys() then:
myVariable = request.POST['query']
else:
# something else, probably looking at other keys
これを単純化するために知らないショートカットはありますか?ある種のロジック myVariable = assign_if_exists(testVariable)
?
解決
「存在しない」のmyVariableをその前の値にそのまま残したいとします。ケース、
myVariable = testVariable or myVariable
最初のケースに対処し、
myVariable = request.POST.get('query', myVariable)
2番目のものを扱います。ただし、どちらも「存在する」とは関係ありません(ほとんどPythonの概念ではありません;-):最初のものはtrueまたはfalseについてであり、2番目はコレクション内のキーの有無についてです。
他のヒント
最初のインスタンスは奇妙に述べられています...ブール値を別のブール値に設定するのはなぜですか?
意味することは、testVariableが長さゼロの文字列ではない場合、またはNoneでない場合、またはFalseに評価されるものではない場合、myVariableをtestVariableに設定することです。
もしそうなら、私はより明示的な定式化を好む
myVariable = testVariable if bool(testVariable) else somethingElse
myVariable = testVariable if testVariable is not None else somethingElse
辞書にインデックスを付けるときは、単に get
を使用します。
myVariable = request.POST.get('query',"No Query")
所属していません StackOverflow