変数のチェックと割り当てのためのPythonショートカットはありますか?

StackOverflow https://stackoverflow.com/questions/1207333

  •  05-07-2019
  •  | 
  •  

質問

次のように入力していることに気づきました(関連する場合は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")
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top