Parfois, nommer les variables, ça aide. J'ai l'impression que tu utilise toujours l pour les listes, mêmes si elles contiennent des objets avec des informations différentes. Un bon nom de variable, pas toujours le même, ça aide.
Les deux if finaux : sauf erreur de ma part, c'est le même traitement, sur des variables différentes. En factorisant, tu vas :
réduire ton nombre de ligne de code (plus facile à lire, débuguer...)
simplifier ta fonction appelée:
defdetect_response(shop,questions,order_info,message,history):response=["/ALERT No cases detected, I don't know what to answer"]#Defaultanswer_id="s0"last_answer=Falseglobalmessages_dic_1,messages_dic_2forlinhistory:ifl[0]==message["email"]:if"s"inl[4]:last_answer=Falseelse:last_answer=Trueanswer_ids=list(eval(l[4].replace("$",",")))last_answer_id=answer_ids[-1]breakiflast_answer:response,last_answer=treat(messages_dic_2,questions)# il manque peut-être des params, c'est pour l'idéeifnotlast_answer:response,last_answer=treat(messages_dic_1,questions)# il manque peut-être des params, c'est pour l'idéereturnresponse[0],answer_id.replace("\r","")deftreat(messages_dic,questions):# factoriser le traitementreturnresponse,last_answer
dans les gros pavés de python, rater une indentation est vite arrivé ;)
# nommage, factorisation
Posté par _kaos_ . En réponse au message Python: Return "Not found" Order_info. Évalué à 6.
Salut,
Parfois, nommer les variables, ça aide. J'ai l'impression que tu utilise toujours
lpour les listes, mêmes si elles contiennent des objets avec des informations différentes. Un bon nom de variable, pas toujours le même, ça aide.Les deux
iffinaux : sauf erreur de ma part, c'est le même traitement, sur des variables différentes. En factorisant, tu vas :Matricule 23415