Что делает трейлинг '==' после присваивания переменной в Python? - PullRequest
0 голосов
/ 23 апреля 2020

Недавно я наткнулся на строку кода, работающую на Python 3.7, которую я раньше не видел и не смог найти ничего в Интернете, так как не знал, что искать.

Контекст похож на следующее:

def some_function(some_var: bool = None):

    if some_var is None:
        some_var = os.environ.get("SOME_ENV_VAR", False) == "true"

Что здесь делает трейлинг-двойное равенство и зачем его использовать?

Ответы [ 2 ]

3 голосов
/ 23 апреля 2020

Вы можете переписать этот фрагмент кода следующим образом, чтобы более четко увидеть, что он делает.

if some_var is None:
   if os.environ.get("SOME_ENV_VAR", False) == "true":
       some_var = True
   else
       some_var = False

Эта строка:

os.environ.get("SOME_ENV_VAR", False) == "true"

является условной проверкой, а затем some_var присваивается результат проверки True / False.

0 голосов
/ 23 апреля 2020

Здесь нет синтаксиса exoti c. == - это просто бинарный (как в «двух аргументах») оператор, такой же, как + или and.

. Вы можете видеть строку как a = b == c, так же, как a = b + c означает «вычислить b + c и сохранить это в a», это означает «вычислить b == c и сохранить это в a, ie. положить True в a, если b равно c, False в противном случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...