Python: встроенный оператор if ничего не делает

Присвоение поля модели Django значению, если оно соответствует условию.

g = Car.objects.get(pk=1234) g.data_version = my_dict['dataVersion'] if my_dict else expression_false # Do nothing?? 

Как я ничего не делаю в этом случае? Мы не можем сделать это, if conditional else pass .

Я знаю, что могу сделать:

 if my_dict: g.data_version = my_dict['dataVersion'] 

но мне было интересно, есть ли способ сделать inline expression_true if conditional else do nothing .

One Solution collect form web for “Python: встроенный оператор if ничего не делает”

Нет, вы не можете делать то, что вы описываете, поскольку это не имеет смысла. Вы назначаете переменную g.data_version … поэтому вы должны что-то присваивать. То, что вы описали, будет похоже на письмо:

 g.data_version = # There is nothing else here 

Это явно недействительный синтаксис. И действительно, нет причин для этого. Вы должны либо сделать:

 if my_dict: g.data_version = my_dict['dataVersion'] 

или

 g.data_version = my_dict['dataVersion'] if my_dict else None # or 0 or '' depending on what data_version should be. 

Технически вы также можете:

 g.data_version = my_dict['dataVersion'] if my_dict else g.data_version 

если вы хотите обновить g.data_version если ваш dict существует, но это менее читаемо и изящно, чем просто использование нормального оператора if.

Python - лучший язык программирования в мире.