当缩进长的 if 条件语句时,通常会像这样做(实际上,PyDev 也是这么缩进的):
当缩进长的 if 条件语句时,通常会像这样做(实际上,PyDev 也是这么缩进的):
if (collResv.repeatability is None or
collResv.somethingElse):
collResv.rejected = True
collResv.rejectCompletely()
然而,这会将if语句开始的块放置在与if条件的最后部分相同的缩进级别上,我认为这使得代码非常难看/难以阅读,因为你不能立即看到块的起始位置。
我考虑过一些其他的样式:
if (collResv.repeatability is None or
collResv.somethingElse):
collResv.rejected = True
collResv.rejectCompletely()
这看起来相当不一致,因为第二行的缩进比第一行多得多,但是它还是可读的。
if (collResv.repeatability is None or
collResv.somethingElse):
collResv.rejected = True
collResv.rejectCompletely()
这个例子比第一个更易读,但缩进不再是4的倍数,而且看起来有些错误,因为第二行的缩进比第一行条件开头的缩进少了。
那么,我的主要问题是:在这种情况下,是否建议使用某种缩进风格,而不需要过长的行(即单行条件)? 如果没有,那么你喜欢哪种情况?
collResv
上没有一个方法来执行测试呢?你必须对不是self
的东西进行复合条件,这可能表明你需要重构。同样,为什么名为rejectCompletely()
的方法也不在对象上设置rejected
属性呢? - Duncan