0
votes

Paramètre itératif à l'intérieur d'une fonction - Python

Je construis une fonction qui reçoit des «morceaux» de données et les traite de manière itérative. Mon problème est de savoir comment enregistrer les derniers paramètres pour la prochaine exécution, tout en l'initialisant lors de la première exécution.

Exemple: strong> p>

def IterativeFunction(X):      #X is the received vector (chunk of data)

    for i in range(len(X)):
        Y[i] = 0.1 * X[i] + 0.9 * Xn1
        Xn1 = X[i]                     #This is the iterative part

     return(Y)


0 commentaires

3 Réponses :


0
votes

Vous pouvez passer xn1 à la fonction et retourner xn1 avec y chaque fois que la fonction est appelée. Dans la première fois, il sera soit soit manquant, soit Aucun (ou toute autre valeur par défaut de votre choix), puis vous l'initialisez.

ps Notez que y n'est jamais initialisé et donc xn1 dans le code d'origine.

croquis - xxx


0 commentaires

0
votes

Vous pouvez utiliser une variable pour garder une trace de combien de fois vous exécutez la fonction, de sorte que la première exécution peut exécuter un morceau de code, et le reste l'autre comme ceci:

run_times = 0
def IterativeFunction(X):      #X is the received vector (chunk of data)
run_times += 1
if run_times == 1:
  for i in range(len(X)):
     Y[i] = 0.1 * X[i] + 0.9 * Xn1
     Xn1 = X[i]                     #This is the iterative part
else:
   blablah


 return(Y)


0 commentaires

0
votes

Merci pour les réponses ci-dessus. J'ai combiné vos idées dans ceci: xxx

Ma question concerne d'autres moyens d'y parvenir, comme le paramètre global? ou est-ce la manière la plus recommandée d'atteindre une solution?


1 commentaires

Les paramètres globaux sont généralement acceptés d'être des odeurs de code, sauf si vous écrivez un script sale rapide. BTW, si les autres réponses vous ont aidé, il est considéré comme une bonne étiquette de les uppoter, même si vous ne voulez pas en accepter en particulier.