Несколько условий для назначения "оператор моржа" - PullRequest
0 голосов
/ 27 апреля 2020

Хотелось бы узнать, можно ли использовать «оператор моржа», чтобы присвоить значение как на основе некоторых условий, так и существующих. Например, присвойте строку post_url, если эта строка содержит некоторую подстроку:

if post_url := data.get("Post url") and ("youtube" in data.get("Post url")):
    # Do something with post_url
else:
    # Do something else

Однако это просто присваивает логическое значение post_url из-за оценки операции and.

1 Ответ

2 голосов
/ 27 апреля 2020

Вы можете использовать круглые скобки, чтобы сгруппировать это так, как вы хотите, вам даже не нужно повторять data.get:

if (post_url := data.get("Post url")) and "youtube" in post_url:
    # Do something with post_url
else:
    # Do something else

Это присвоит значение post_url в любом случае, так что вы может получить доступ к None или URL-адресу, не содержащему "youtube" в блоке else.

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