je vis les messages SO suivants sur des arguments variables en Python:Comment combiner des arguments connus et des arguments variables pour les transmettre à une autre fonction?
What does ** (double star) and * (star) do for parameters?
function call with named/unnamed and variable arguments in python
Can a variable number of arguments be passed to a function?
Aucun d'entre eux a répondu à ma question. Alors, voilà:
Je voudrais définir deux fonctions:
def LogError(log_file, *args):
print("USER ERROR:", ***NOT SURE ABOUT THIS PART***, file=log_file)
def LogWarning(log_file, *args):
print("USER WARNING:", ***NOT SURE ABOUT THIS PART***, file=log_file)
Je veux les appeler à l'aide:
error_file = open("somefile")
LogError(error_file, "Unable to find", username, "in the database.")
warning_file = open("somefile")
LogWarning(warning_file, arg1, arg2, arg3)
Je veux l'appel à LogError
être l'équivalent de
print("USER ERROR:", "Unable to find", username, "in the database.", file=error_file)
et je veux l'appel à LogWarning
être l'équivalent de
print("USER WARNING:", arg1, arg2, arg3, file=warning_file)
Quelle est la meilleure façon d'y parvenir?
Puisqu'il n'y a pas d'autres arguments à l'appel, 'print (" USER ERROR: ", * args, file = fichier_journal)'? (En supposant Python 3) –
@JeffMercado, j'ai essayé ça. Cela équivaut à 'print (" USER ERROR: ", [" Impossible de trouver ", nom d'utilisateur," dans la base de données. "], Fichier = fichier_erreur)'. –
Le '*' est important. Il développera 'args' comme si la fonction était appelée avec les éléments comme arguments individuels dans leurs positions correspondantes. –