**在python中的含义是什么(当不是数学表达式时)

**在python中的含义是什么(当不是数学表达式时),python,Python,下面是代码的一小部分 import networkx as nx G=nx.MultiDiGraph() ... G.add_edge(white, black, **game) (游戏是一场演讲) 最后一行中**的作用是什么?这意味着该参数基本上是一个字典 它通常用作**kwargs,意思是关键字参数 例如,当您定义以下方法时: def myMethod(first, *args, **kwargs): .... 这意味着第二个参数应该是一个集合(参数的“列表”),而kwargs应

下面是代码的一小部分

import networkx as nx
G=nx.MultiDiGraph()
...
G.add_edge(white, black, **game)
(游戏是一场演讲)
最后一行中**的作用是什么?这意味着该参数基本上是一个字典

它通常用作
**kwargs
,意思是关键字参数

例如,当您定义以下方法时:

def myMethod(first, *args, **kwargs):
    ....

这意味着第二个参数应该是一个集合(参数的“列表”),而
kwargs
应该是一个
dict
这意味着该参数基本上是一个字典

它通常用作
**kwargs
,意思是关键字参数

例如,当您定义以下方法时:

def myMethod(first, *args, **kwargs):
    ....

这意味着第二个参数应该是一个集合(参数的“列表”),而
kwargs
应该是一个
dict

函数
add_edge
在字典
game
中以同样的方式传递。例如,以下两个是等效的:

game = {'weight': 5, 'color': 'blue'}
G.add_edge(white, black, **game)

函数
add_edge
在字典
game
as中传递。例如,以下两个是等效的:

game = {'weight': 5, 'color': 'blue'}
G.add_edge(white, black, **game)

**
是将映射类型(例如
dict
)解压为关键字参数的运算符

考虑:

def foo(bar=1):
   print bar

d = {'bar':2}
foo(**d)
在本例中,将打印
2
。另一方面,您还可以吸收
**kwargs
类型变量中的所有未知关键字参数:

def foo(a=1,b=2,**kwargs):
    print kwargs

foo(a=1,b=2,c=3)
当然,您也可以将这些表单组合在一起:

def foo(a=1,b=2,**kwargs):
    print b
    print kwargs

d = {'b':3, 'c':4}
foo(**d)

**
是将映射类型(例如
dict
)解压为关键字参数的运算符

考虑:

def foo(bar=1):
   print bar

d = {'bar':2}
foo(**d)
在本例中,将打印
2
。另一方面,您还可以吸收
**kwargs
类型变量中的所有未知关键字参数:

def foo(a=1,b=2,**kwargs):
    print kwargs

foo(a=1,b=2,c=3)
当然,您也可以将这些表单组合在一起:

def foo(a=1,b=2,**kwargs):
    print b
    print kwargs

d = {'b':3, 'c':4}
foo(**d)

它扩展字典,使其密钥对值用作命名参数。例如,考虑这个函数:

>>> def f(a, b, c):
...     return a+b-c
... 
我可以称之为按原始顺序传递参数:

>>> f(1,2,3)
0
但如果我将值属性化为参数名称,也可以切换它们:

>>> f(1,c=3,b=2)
0
当调用传递前面有
**
的字典的函数时,该字典的成对将用作参数。因此,我可以创建下面的词典

>>> params = {'c':3, 'b':2}
…并将其传递给我的职能部门

>>> f(1,**params)
0

…并将得到相同的结果。

它展开字典,以便将其密钥对值用作命名参数。例如,考虑这个函数:

>>> def f(a, b, c):
...     return a+b-c
... 
我可以称之为按原始顺序传递参数:

>>> f(1,2,3)
0
但如果我将值属性化为参数名称,也可以切换它们:

>>> f(1,c=3,b=2)
0
当调用传递前面有
**
的字典的函数时,该字典的成对将用作参数。因此,我可以创建下面的词典

>>> params = {'c':3, 'b':2}
…并将其传递给我的职能部门

>>> f(1,**params)
0
…并将得到相同的结果。

duplicate:duplicate: