La notation d'inclusion en Python est pratique, mais si vous essayez de faire quelque chose d'un peu compliqué, vous vous retrouvez avec une imbrication en plusieurs étapes. Et l'imbrication réduit considérablement la lisibilité. Pour cette raison, je pense que beaucoup de gens le réécriront en notation par blocs lorsque la hiérarchie d'imbrication deviendra plus profonde.
Cependant, si vous définissez des règles et les indentez, l'imbrication ne compromettra pas la lisibilité. Par exemple, cela ressemble à ceci:
itemList = [
(item.name, item.price)
for item in record.items()
for purchase in purchases
if purchase.campaignName in {
campaign.name
for campaign in camapigns
} and purchase.date > datetime.date.today() - datetime.timedelta(days = 7)
]
Cela peut prendre un certain temps pour s'y habituer, mais une fois que vous vous y serez habitué, ce sera beaucoup plus facile à lire que la notation par blocs. Étant donné que la notation de bloc augmente les variables de stockage de liste inutiles et réduit la lisibilité, le mérite de pouvoir s'imbriquer indéfiniment dans la notation inclusive est assez grand.
Recommended Posts