use*_*703 5 python django conditional if-statement inline
如果Django Model的字段与条件匹配,则将其分配给值.
g = Car.objects.get(pk=1234)
g.data_version = my_dict['dataVersion'] if my_dict else expression_false # Do nothing??
Run Code Online (Sandbox Code Playgroud)
在那种情况下我怎么办?我们做不到if conditional else pass.
我知道我能做到:
if my_dict:
g.data_version = my_dict['dataVersion']
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有办法进行内联expression_true if conditional else do nothing.
不,你不能完全按照你所描述的那样做,因为它没有意义.您正在分配变量g.data_version...所以您必须分配一些东西.你所描述的就像写作:
g.data_version = # There is nothing else here
Run Code Online (Sandbox Code Playgroud)
这显然是无效的语法.实际上,没有理由这样做.你应该这样做:
if my_dict:
g.data_version = my_dict['dataVersion']
Run Code Online (Sandbox Code Playgroud)
要么
g.data_version = my_dict['dataVersion'] if my_dict else None # or 0 or '' depending on what data_version should be.
Run Code Online (Sandbox Code Playgroud)
从技术上讲,你也可以这样做:
g.data_version = my_dict['dataVersion'] if my_dict else g.data_version
Run Code Online (Sandbox Code Playgroud)
如果你只想更新g.data_version你的dict是否存在,但这比仅使用普通的if语句更不易读和优雅.
| 归档时间: |
|
| 查看次数: |
19013 次 |
| 最近记录: |