2014-10-26 5 views
-1

Я часто есть код, похожий наМожно ли смешивать присвоение переменной с условием?

a = somefunction() 
if a: 
    do_something() 

Есть ли в Python конструкция, которая будет смешиваться инициализацию с тестом состояние? Что-то вроде

if a = somefunction(): 
    do_something() 

который испытает a после того, как было присвоено значение с помощью somefunction()?

+0

Ваш первый подход - лучшее, что вы можете сделать. – Maroun

+0

Зачем вам назначать, если вы не собираетесь его использовать? –

+0

@PadraicCunningham: Я буду использовать его (и именно поэтому я назначаю функцию, возвращающую переменную, а не прямое ее использование, как указано в ответе Алекса) – WoJ

ответ

3

Нет, нет способа сделать это; Оператор if должен иметь условие - поэтому размещение задания в нем вызовет SyntaxError. Ваш первый пример является лучшим, но если вам не нужно a позже, то это:

if somefunction(): 
    do_something() 

должно хватить.

+0

Спасибо. Первый пример отлично работает, я просто хотел уменьшить возможный беспорядок (и мне нужно 'a' впоследствии) – WoJ

+0

@WoJ Рад, что я мог бы помочь. Когда пройдет льготный период, не могли бы вы согласиться с галочкой, чтобы показать, что проблема закрыта? Спасибо. :) –

+0

о да, я всегда делаю :). Осталось еще несколько минут ... – WoJ

Смежные вопросы