Si vous donnez une liste avec l'argument par défaut de la fonction ...

1


def test(x, l=[]): 
    l.append(x)
    return l

y = [1, 2, 3, 4]
r = test(7, y)
print(r)

Résultat d'exécution de 1


[1, 2, 3, 4, 7]

2


def test(x, l=[]): 
    l.append(x)
    return l

r = test(100)
print(r)
r = test(100)
print(r)

Résultat d'exécution de 2


[100]
[100, 100]

J'avais l'intention de refaire le même processus deux fois, La deuxième fois, 100 devient deux.

Cela se produit car la liste est passée par référence. Parce que cela conduit souvent à des bugs Ne passez pas par référence, comme les listes et les dictionnaires, comme arguments par défaut.

Alors écrivez comme suit.

3


def test(x, l=None):
    if l is None:
        l = []
    l.append(x)
    return l

y = [1, 2, 3, 4]
r = test(7, y)
print(r)

r = test(100)
print(r)
r = test(100)
print(r)

Résultat d'exécution de 3


[1, 2, 3, 4, 7]
[100]
[100]

Recommended Posts

Si vous donnez une liste avec l'argument par défaut de la fonction ...
Trouvez la valeur optimale de la fonction à l'aide d'un algorithme génétique (partie 2)
Précautions lors de l'utilisation d'une liste ou d'un dictionnaire comme argument par défaut
Rendre la valeur par défaut de l'argument immuable
Si vous voulez un singleton en python, considérez le module comme un singleton
Générez une liste contenant le nombre de jours du mois en cours.
[Introduction à Python] Comment trier efficacement le contenu d'une liste avec le tri par liste
Recevez une liste des résultats du traitement parallèle en Python avec starmap
Récupérer l'appelant d'une fonction en Python
Copiez la liste en Python
Obtenir une liste d'utilisateurs IAM avec Boto3
Correction des arguments de la fonction utilisée dans map
Si vous les gars dans la cuisine de portée pouvez le faire avec une marge ~ ♪
Comment obtenir une liste de fichiers dans le même répertoire avec python
[Python] N'est-ce pas le plus élevé et le plus élevé si vous pouvez saisir les caractéristiques d'une entreprise avec nlplot?
Ne spécifiez pas un objet mutable (type de liste, type de dictionnaire, etc.) comme valeur initiale de l'argument de fonction de python.
Si vous définissez une méthode dans une classe Ruby, puis définissez une méthode dans celle-ci, elle devient une méthode de la classe d'origine.
Comment identifier l'élément avec le plus petit nombre de caractères dans une liste Python?
Prenez note de la liste des utilisations de base de Pandas
#Une fonction qui renvoie le code de caractère d'une chaîne de caractères
Rendre la valeur par défaut de l'argument immuable (explication de l'article)
Visualisez le vocabulaire caractéristique d'un document avec D3.js
J'ai examiné l'argument class_weight de la fonction softmax_cross_entropy de Chainer.
Comment vérifier en Python si l'un des éléments d'une liste est dans une autre liste
Calculer le produit des matrices avec une expression de caractère?
La valeur de meta lors de la spécification d'une fonction sans valeur de retour avec Dask dataframe s'applique
Notez ce que vous voulez faire à l'avenir avec Razpai
Donnez une date et une heure à la commande d'historique et collectez les fichiers d'historique de tous les utilisateurs avec un script
Si vous voulez mettre un argument dans la fonction de fermeture et l'exécuter plus tard
Si vous tirez une loterie avec 1% de chances d'apparaître 100 fois de suite, gagnerez-vous une fois?
Essayez d'obtenir la liste des fonctions du paquet Python> os
Un diagramme de réseau a été créé avec les données du COVID-19.
Mesurer l'importance des entités avec un outil de forêt aléatoire
Obtenez le nombre d'éléments spécifiques dans la liste python
Obtenez une liste des livres électroniques DMM achetés avec Python + Selenium
J'ai fait une fonction pour vérifier le modèle de DCGAN
Comment afficher une liste des versions installables avec pyenv
J'ai essayé un peu le comportement de la fonction zip
Extraire la valeur de dict ou list sous forme de chaîne de caractères
Analysez le modèle thématique pour devenir romancier avec GensimPy3
2015-11-26 python> Afficher la liste des fonctions du module> import math> dir (math)
L'histoire de la création d'un bot de boîte à questions avec discord.py
Comment connecter le contenu de la liste dans une chaîne de caractères
[Django] Que faire quand il y a de nombreux champs dans le modèle que vous souhaitez créer
Décorateur qui notifie sur AWS-SNS si la fonction ne se termine pas dans le délai spécifié
Prouvons le théorème d'addition d'une fonction triangulaire en remplaçant la fonction par une fonction dans SymPy (≠ substitution)
Traitez le contenu du fichier dans l'ordre avec un script shell
Une histoire coincée avec l'installation de la bibliothèque de machine learning JAX
Si vous souhaitez devenir data scientist, commencez par Kaggle
Obtenez le nombre de PV d'articles Qiita que vous avez publiés avec l'API
J'ai essayé d'obtenir l'index de la liste en utilisant la fonction énumérer
[Statistiques] Saisir l'image de la théorie de la limitation du pôle central avec un graphe
[python, ruby] sélénium-Obtenez le contenu d'une page Web avec le pilote Web
[Introduction à Python] Comment fractionner une chaîne de caractères avec la fonction split