如何优化以下代码并减少编写量?
class CleanItem():
def process_item(self, item, spider):
PSCV = str(item['page_source_canonical']).split("'")[1]
if PSCV != "":
if PSCV != item['page_source']:
item['page_source_canonical_is_itself'] = False
else:
item['page_source_canonical_is_itself'] = True
else:
item['page_source_canonical_is_itself'] = True
return item
Run Code Online (Sandbox Code Playgroud)
首先它检查它是否为空。如果为空,则为 true。如果它不为空,则应检查它,如果相同则再次为真。否则就是假的。
你写了
if PSCV != "":
if PSCV != item['page_source']:
item['page_source_canonical_is_itself'] = False
else:
item['page_source_canonical_is_itself'] = True
else:
item['page_source_canonical_is_itself'] = True
Run Code Online (Sandbox Code Playgroud)
你要
item['page_source_canonical_is_itself'] = PSCV in (
'', item['page_source'])
Run Code Online (Sandbox Code Playgroud)
这就是DRY,并且非常清楚地阐明了作者的意图,即我们将在匹配任一值时分配 True,否则分配 False。
风格 nit:PEP 8要求您拼写pscv小写。
考虑删除未使用的spider参数。
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |