Передача словаря в качестве параметра функции и вызов функции в Python - PullRequest
0 голосов
/ 27 сентября 2011

В следующем коде, как передать словарь в func2.Как назвать func2?

def func2(a,**c):
 if len(c) > 0:
   print len(c)
   print c

u={'a':1,'b':2}
func2(1,u)

Ответы [ 3 ]

2 голосов
/ 27 сентября 2011

Как только они их принимают:

func2(1,**u)
1 голос
/ 27 сентября 2011

Это не запустится, потому что есть несколько параметров для имени a.

Но если вы измените его на:

def func2(x,**c):
    if len(c) > 0:
    print len(c)
        print c

Тогда вы будете называть его как:

func2(1, a=1, b=2)

или

u={'a':1,'b':2}
func2(1, **u)
0 голосов
/ 27 сентября 2011

Это может помочь вам:

 def fun(*a, **kw):
     print a, kw

 a=[1,2,3]
 b=dict(a=1, b=2, c=3)

 fun(*a)
 fun(**kw)
 fun(*a, **kw)
...