看到不同的同事代码,表达同一个意思,主要 if 部分以下哪种写法比较好些:)
第一种写法
def xxxx(ph, sin_id):
"""
"""
with OracleConnect(xxxx) as db_oracle:
sql = u"xxxxx"
has_data, sql_data = db_oracle.get_one(sql)
# 第一种写法
if has_data:
calculate_func = "rollback"
task_id = sql_data.get("task_id", "")
else:
calculate_func = "calculate"
task_id = sin_id
return task_id, calculate_func
第二种写法
def xxxx(ph, sin_id):
"""
"""
with OracleConnect(xxxx) as db_oracle:
sql = u"xxxxx"
has_data, sql_data = db_oracle.get_one(sql)
# 第二种写法
calculate_func = "rollback" if has_data else "calculate"
task_id = sql_data.get("task_id", "") if has_data else sin_id
return task_id, calculate_func
第一种写法,比较直接,清晰明了,但有同事说不够 pythonic。
第二种写法比较 pythonic,但是类似写法,对于刚接手别人代码的同事,就要稍微绕一下才能读懂。
由此拓展,想到在写业务逻辑中,经常会有 if 语句的判断,请问大家是怎么选择代码风格的:)