Java: escape-символ OpenCSV в полях

Motif: *args и **kwargs служат заполнителем для аргументов, которые необходимо передать вызову функции

, используя *args и **kwargs для вызова функции

def args_kwargs_test(arg1, arg2, arg3):
    print "arg1:", arg1
    print "arg2:", arg2
    print "arg3:", arg3

Теперь мы будем использовать *args для вызова указанной выше функции

#args can either be a "list" or "tuple"
>>> args = ("two", 3, 5)  
>>> args_kwargs_test(*args)

result:

arg1: two arg2: 3 arg3: 5


Теперь, используя **kwargs для вызова той же функции

#keyword argument "kwargs" has to be a dictionary
>>> kwargs = {"arg3":3, "arg2":'two', "arg1":5}
>>> args_kwargs_test(**kwargs)

result:

arg1: 5 arg2: two arg3: 3

Bottomline: *args не имеет интеллекта, он просто интерполирует переданные аргументы в параметры (в порядке слева направо), в то время как **kwargs ведет себя разумно, помещая соответствующее значение @ в требуемое место

0
задан rahul 22 February 2019 в 09:32
поделиться