我们的新CTO希望我们使用PEP8标准来格式化所有代码。这包括行数不超过80且最多100个字符的Python代码。我有这段扩展的代码。关于如何将这一行分解为2-3条清晰易读的行的任何提示。
# Identify if Authenticated
identify = ''
if is_authenticated:
fullname = request.user.full_name if 'full_name' in request.user else ''
identify = 'mixpanel.identify("{} ");\nmixpanel.people.set({{"$email": {email}, "$name": {name}}})'.format(email=request.user.email, name=fullname)
我已经尝试过诸如:
# Identify if Authenticated
identify = ''
if is_authenticated:
fullname = request.user.full_name if 'full_name' in request.user else ''
identify = 'mixpanel.identify("{} ");\n'
'mixpanel.people.set({{"$email": {email}, "$name": {name}}})'.format(email=request.user.email, name=fullname)
...但是当我引用另一篇SO帖子说这没问题时,linting却返回了无法识别的格式错误(红色弯曲)。
我还考虑过将所有内容以.format
开头。
有什么提示吗?
答案 0 :(得分:3)
我会利用括号:
identify = ''
if is_authenticated:
fullname = request.user.full_name if 'full_name' in request.user else ''
form = (
'mixpanel.identify("{} ");\n'
'mixpanel.people.set({{"$email": {email}, "$name": {name}}})'
)
identify = form.format(email=request.user.email, name=fullname)
答案 1 :(得分:0)
最后我将传递给textwrap.dedent的三引号和结果的调用格式。 textwrap.dedent("""\
所需的行数""").format(...)
。三元组的开头中的行连续是为了压制空白的第一行。我也喜欢在文档字符串中使用它。