python * args, ** kwargs Notes d'utilisation

Que puis-je faire

Vous pouvez recevoir tous les arguments dont vous ne savez pas combien viendront.

Argument de position

python


def test(*args, **kwargs):
    print(args)
    print(kwargs)
    
test(1, 2, 'hoge')

output


(1, 2, 'hoge')
{}

Argument de mot-clé

** Entrez kwargs avec dict ().

python


def test(*args, **kwargs):
    print(args)
    print(kwargs)
    
test(1, 2, 3, 4, 5, col=4, row=5)

output


(1, 2, 3, 4, 5)
{'col': 4, 'row': 5}

S'il n'y a pas d'argument correspondant

Ce sera un tuple vide () et un dict vide ().

python


def test(*args, **kwargs):
    print(args)
    print(kwargs)
    
test()

output


()
{}

Pratique à utiliser avec la fonction wrapper

Vous pouvez transmettre l'argument reçu tel quel

python


def func1(a, b, c=2):
    d = a + b * c
    return d

def func2(*args, **kwargs):
    d = func1(*args, **kwargs)
    return d

print(func2(1, 2))
print(func2(1, 2, c=5))

output


5
11

Le nom de l'argument peut être modifié

En fait, si le nombre de * est le même, le nom de l'argument peut être changé librement. Vous pouvez utiliser * a, * hoge au lieu de * args, et ** b, ** fuga etc. au lieu de ** kwargs.

python


def test(*a, **b):
    print(a)
    print(b)
    
test(1, 2, 3, 4, 5, col=4, row=5)

output


(1, 2, 3, 4, 5)
{'col': 4, 'row': 5}

Essayons!

Recommended Posts

python * args, ** kwargs Notes d'utilisation
notes d'utilisation du décorateur python
Remarques sur l'utilisation du test unittest standard Python
Mémo de raclage Python
Note d'apprentissage Python_000
Notes d'apprentissage Python
concurrent.futures Notes d'utilisation
Notes de débutant Python
Note d'apprentissage Python_006
notes de python C ++
Note d'apprentissage Python_005
Notes de grammaire Python
Note sur la bibliothèque Python
notes personnelles python
mémo pandas python
Note d'apprentissage Python_001
notes d'apprentissage python
Notes d'installation de Python3.4
notes personnelles en python manquantes
Notes de développement de package Python
Utilisation des locaux Python ()
Mémo du package d'adresse IP Python
Notes sur le format Python Pickle
Premier mémo divers sur Python
Matlab => Notes de migration Python
Remarques sur l'affectation Python3
Notes sur l'utilisation de sous-processus Python
Python essayer / sauf mémo
Notes sur le flacon de framework Python
mémo python utilisant l'opérateur perl-ternaire
[Python] Utilisation correcte de la carte
Notes Python à oublier bientôt
Remarques sur les * args et ** kargs
notes python pour l'utilisation de variables spéciales perl
Notes sur l'expression régulière de la théorie Python
Mémo Python Tkinter (pour moi)
Remarques pratiques sur l'utilisation de la commande diff
[Python] Notes sur l'analyse des données
Notes d'apprentissage sur l'analyse des données Python
Remarques sur l'installation de Python sur votre Mac
Arguments optionnels et * args, ** kwargs
[Python] * args ** Qu'est-ce que kwrgs?
Exemple d'utilisation de pickle Python
Utilisation basique de la f-string Python
Obtenez des notes Evernote en Python
[Python] Utilisation correcte de la jointure
Remarques sur l'installation de Python sur CentOS
Notes sur Python et les types de dictionnaire
Notes de grammaire minimales pour écrire Python
Remarques sur l'utilisation de MeCab depuis Python
Notes personnelles pour le traitement d'images python
Notes personnelles de prétraitement des données Python Pandas
Mémo d'automatisation de saisie par Python débutant
Mémo pour moi graphique csv python
Remarques sur l'installation de Python à l'aide de PyEnv
Utilisation élémentaire d'ITK apprise avec Python
Notes pour l'entrée / sortie de fichier Python
Notes sur l'utilisation de rstrip avec python.