Я не могу понять, как передать как * args, так и ** kwargs в скрипт на python из cli. * Args, кажется, включает в себя ** записи kwargs так, как я делаю это.Должен ли я выяснить, сколько существует ** kwargs, затем вычесть это число из * args, чтобы определить, какие аргументы были аргументами?
Я могу сделать это, передав функцию в сценарии, но еслиЯ хочу передать аргументы из cli, как определить, какие из них для * args, а какие для ** kwargs?
Это работает:
def Func(*args,**kwargs):
for arg in args:
print arg
for item in kwargs.items():
print item
print Func(1,2,3,x=7,u=8)
Но я хочу кое-чтокак это:
def Func(*args,**kwargs):
for arg in args:
print arg
for item in kwargs.items():
print item
print Func(sys.argv[1], sys.argv[2], sys.argv[3:])
Вот что я получаю:
$ ./test.py 1 2 3 4 x=7 u=8
1
2
['3', '4', 'x=7', 'u=8']
None
Но я хочу приблизиться к этому:
$ ./test.py 1 2 3 4 x=7 u=8
1
2
['3', '4']
{'x': '7', 'u': '8'}
или к этому:
$ ./test.py 1 2 3 4 x=7 u=8
1
2
3
4
('x', 7)
('u', 8)
Любая помощь будет принята с благодарностью!