samedi 2 mai 2020

Reducing a function using dictionary

I have two functions that are very similar:

def hier_group(self):
    if self.sku:
        return {f"{self.hierarchic}": f"${self.hierarchic}", "id": "$id", "ix": "$ix"}
    else:
        return {f"{self.hierarchic}": f"${self.hierarchic}", "ix": "$ix"}

def hier_group_merge(self):
     if self.sku:
         return {f"{self.hierarchic}": f"${self.hierarchic}", "id": "$id"}
     else:
         return {f"{self.hierarchic}": f"${self.hierarchic}"}

I am trying to reduce into 1 function that has only one if/else.

The only difference in both functions is "ix": "$ix".

What I am trying to do is the following:

def hier_group(self, ix=True):
       if self.sku:
           return {f"{self.hierarchic}": f"${self.hierarchic}", "id": "$id" f'{',"ix": "$ix"' if ix == True else ""}'}
       else:
           return {f"{self.hierarchic}": f"${self.hierarchic}"  f'{',"ix": "$ix"' if ix == True else ""}'}

But it's getting trick to return , "ix": "$ix".

Aucun commentaire:

Enregistrer un commentaire