
Я никак не могу взять в толк, чем это принципиально отличается от
Code: Select all
def f2(kwargs):
print "f2 kwargs =",kwargs
def f1(kwargs):
print "f1 kwargs =", kwargs
f2(kwargs)
a = 1
b = 2
f1({'a':a, 'b':b})
Code: Select all
def f2(kwargs):
print "f2 kwargs =",kwargs
def f1(kwargs):
print "f1 kwargs =", kwargs
f2(kwargs)
a = 1
b = 2
f1({'a':a, 'b':b})
Ну, навскидку тем:perasperaadastra wrote:Извините, ночью уже не хватило сил ставить эксперимент в консоли
Я никак не могу взять в толк, чем это принципиально отличается отТот же словарь, те же возможности? Или в вызове f1(a=1,b=2) есть что-то более кошерное?Code: Select all
def f2(kwargs): print "f2 kwargs =",kwargs def f1(kwargs): print "f1 kwargs =", kwargs f2(kwargs) a = 1 b = 2 f1({'a':a, 'b':b})
Code: Select all
def f1(**kwargs):
...: print "f1 kwargs =", kwargs
...:
In [2]: f1()
f1 kwargs = {}
In [3]: def f2(kwargs):
print "f2 kwargs =", kwargs
...:
In [4]: f2()
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-4-fdec4c1c071f> in <module>()
----> 1 f2()
TypeError: f2() takes exactly 1 argument (0 given)
Code: Select all
def f1(a=None, b=None):
print "f1 a =", a
print "f1 b =", b
In [11]: kwargs = {'a': 1, 'b': 2}
In [12]: f1(**kwargs)
f1 a = 1
f1 b = 2
In [13]:
Any time.perasperaadastra wrote:Ааа! Теперь понятно! Большое спасибо за объяснение!
Code: Select all
def f2(x=0, b=0, **remainder):
print "f2 formal args: ", x, ", ", b
print "f2 arg remainder:", remainder
def f1(d, **remainder):
print "f1 formal arg: ", d
print "f1 arg remainder:", remainder
x = d*2
f2(x, **remainder)
f1(9, a=1, b=3, c=7)