正确的Pythonic方法是什么来打断下面表达式的第一行(出现在多行上),使其更具可读性:
if props.getProperty("app.auth.idp.strategy") == '' or props.getProperty("app.auth.idp.strategy") == 'saml/simpleSAMLphp' and PROXYING_MECHANISM == "ngrok":
IDP_STRATEGY = "saml/simpleSAMLphp"
elif props.getProperty("app.auth.idp.strategy") == 'saml/gsuite':
IDP_STRATEGY = "saml/gsuite"
elif props.getProperty("app.auth.idp.strategy") == 'saml/remote-simpleSAMLphp':
IDP_STRATEGY = "saml/remote-simpleSAMLphp"
else:
IDP_STRATEGY = "saml"
如注释中所述,在每行末尾添加一个
\
。您还可以用一个变量替换每个getProperty("app.auth.idp.strategy")
,这样就只调用一次。你知道吗根据PEP8可能是这样的
重构
首先,我不会重复调用
props.getProperty("app.auth.idp.strategy")
。打一次电话,你马上就没有理由分线了。你知道吗行延拓
对于第一个长行,您的选项是行继续,可以是显式的:
或隐式括号内:
使用查找,而不是重复比较
一个更好的选择是用
dict
查找替换一个长字符串:因为
dict
的每个键都映射到它自己,所以可以用一个简单的set
查找来替换。你知道吗从最后两个选项中选出你认为更具可读性的。
dict
在其定义中更为冗余,但允许对IDP_STRATEGY
进行单个赋值。你知道吗相关问题 更多 >
编程相关推荐