1. ホーム
  2. python

[解決済み] Pythonの条件付き代入演算子

2022-03-03 04:05:19

質問

PythonでRubyの ||= 演算子 ("set the variable if the variable is not set") は存在するのでしょうか?

Ruby での例 :

 variable_not_set ||= 'bla bla'
 variable_not_set == 'bla bla'

 variable_set = 'pi pi'
 variable_set ||= 'bla bla'
 variable_set == 'pi pi'

解決方法は?

いいえ、交換です。

try:
   v
except NameError:
   v = 'bla bla'

しかし、この構文を使いたがるのは、コードの流れが複雑になりすぎている証拠です。通常は、次のようにする。

try:
   v = complicated()
except ComplicatedError: # complicated failed
   v = 'fallback value'

であるかどうか、決して迷うことはありません。 v が設定されているかどうか。もし、それが設定されるかされないかのどちらかである多くのオプションのうちの1つであるなら、辞書とその get メソッドで、デフォルト値を設定することができます。