【发布时间】:2018-06-07 16:58:48
【问题描述】:
打破以下表达式的第一行(出现在多行)以使其更具可读性的正确 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"
【问题讨论】:
-
在新行之前的每一点添加`\`(转义字符)。
-
我有时也很难让东西看起来可读,所以我认为一旦完全解决,这将作为参考有用,因此请修复 else 下的缩进以供将来参考。我同意其他 cmet 为重用属性分配变量也会增强此代码。
-
我只是认为您的示例代码所做的是在大多数情况下按原样分配“...idp.strategy”属性的值,是否有更多潜在的例外作为值的“”或您默认为“saml”的完全不同的值?如果您有“saml/simpleSAMLphp”但 PROXYING_MECHANISM 不是“ngrok”,那么您想要什么结果,因为这会导致“saml”
-
@dparolin:没错,我没有对所有可能的排列进行详尽的检查(我想,我也需要使用一些括号),但
saml应该是在这种情况下作为默认值正确。
标签: python syntax readability code-readability