Python func(a)(**kwargs))的含义是什么

Python func(a)(**kwargs))的含义是什么,python,Python,我有一个模式为“function(a)(**kwargs)”的代码。我只知道“函数(a,**kwargs)”模式。如果在独立的偏执论中有第二组论点,这意味着什么 缩短到我认为相关的代码如下所示: myprog1.py myprog2.py 工厂是一个函数,测试是一个字符串(命名对象) 函数(a)(**kwargs)调用函数(a)的返回值,并从**kwargs解包关键字参数。例如下面的代码 def f(): def inner(**ka): print(ka) # prin

我有一个模式为“function(a)(**kwargs)”的代码。我只知道“函数(a,**kwargs)”模式。如果在独立的偏执论中有第二组论点,这意味着什么

缩短到我认为相关的代码如下所示:

myprog1.py myprog2.py 工厂是一个函数,测试是一个字符串(命名对象)

函数(a)(**kwargs)
调用
函数(a)
的返回值,并从
**kwargs
解包关键字参数。例如下面的代码

def f():
    def inner(**ka):
        print(ka) # print received keyword arguments
    return inner # return a callable function object

f()(argument='here')
输出

{'argument': 'here'}
function(a)(**kwargs)
调用
函数(a)
的返回值,并从
**kwargs
解压关键字参数。例如下面的代码

def f():
    def inner(**ka):
        print(ka) # print received keyword arguments
    return inner # return a callable function object

f()(argument='here')
输出

{'argument': 'here'}

**kwargs
是一种语法结构,它从字典中生成函数参数。例如:

def a(b, c):
    print b + c

args = {'b': 1, 'c': 2}
a(**args)  # will print 3
在代码中,搜索kwargs的定义。我敢打赌,在参数列表中,某些函数有
**kwargs
,如下所示:

def some_function(**kwargs):
因此,您的代码
chk=self.factory(test)(**kwargs)
将执行以下操作:

  • 使用
    test
    参数调用
    self.factory
    方法
  • self.factory
    返回函数
  • 将使用参数调用返回的函数,这些参数作为参数传入
    some_函数

  • **kwargs
    是一种语法结构,它从字典中生成函数参数。例如:

    def a(b, c):
        print b + c
    
    args = {'b': 1, 'c': 2}
    a(**args)  # will print 3
    
    在代码中,搜索kwargs的定义。我敢打赌,在参数列表中,某些函数有
    **kwargs
    ,如下所示:

    def some_function(**kwargs):
    
    因此,您的代码
    chk=self.factory(test)(**kwargs)
    将执行以下操作:

  • 使用
    test
    参数调用
    self.factory
    方法
  • self.factory
    返回函数
  • 将使用参数调用返回的函数,这些参数作为参数传入
    some_函数

  • 谢谢,这就清楚了。简短的语法,但对初学者来说并不明显:-/谢谢,这就清楚了。简短的语法,但对初学者来说并不明显:-/