我有一行下面的代码(不要责怪命名约定,它们不是我的):
subkeyword = Session.query(
Subkeyword.subkeyword_id, Subkeyword.subkeyword_word
).filter_by(
subkeyword_company_id=self.e_company_id
).filter_by(
subkeyword_word=subkeyword_word
).filter_by(
subkeyword_active=True
).one()
我不喜欢它的样子(可读性不太好),但在这种情况下,我没有更好的主意将行限制在79个字符以内。有没有更好的方法来打破它(最好不要反斜杠)?
发布于 2011-01-23 00:19:55
您可以使用其他括号:
subkeyword = (
Session.query(Subkeyword.subkeyword_id, Subkeyword.subkeyword_word)
.filter_by(subkeyword_company_id=self.e_company_id)
.filter_by(subkeyword_word=subkeyword_word)
.filter_by(subkeyword_active=True)
.one()
)
发布于 2013-04-09 23:10:46
这是一种优先使用行连续字符而不是左括号的情况。随着方法名变得越来越长以及方法开始接受参数,对这种风格的需求变得越来越明显:
subkeyword = Session.query(Subkeyword.subkeyword_id, Subkeyword.subkeyword_word) \
.filter_by(subkeyword_company_id=self.e_company_id) \
.filter_by(subkeyword_word=subkeyword_word) \
.filter_by(subkeyword_active=True) \
.one()
PEP8旨在用常识和实用和美观的眼光来解释。乐于违反任何导致难看或难以阅读的代码的PEP8指南。
也就是说,如果您经常发现自己与PEP 8不一致,这可能是一个迹象,表明存在可读性问题,而不是您选择的空格:-)
发布于 2011-01-23 00:19:48
只需存储中间结果/对象并调用其上的下一个方法,例如
q = Session.query(Subkeyword.subkeyword_id, Subkeyword.subkeyword_word)
q = q.filter_by(subkeyword_company_id=self.e_company_id)
q = q.filter_by(subkeyword_word=subkeyword_word)
q = q.filter_by(subkeyword_active=True)
subkeyword = q.one()
https://stackoverflow.com/questions/4768941
复制相似问题