在下面的方法定义,什么是*和**为做param2?
def foo(param1, *param2):
def bar(param1, **param2):
Run Code Online (Sandbox Code Playgroud) python syntax parameter-passing variadic-functions argument-unpacking
*在C中具有特殊含义,就像在C中一样吗?我在Python Cookbook中看到了这样的函数:
def get(self, *a, **kw)
Run Code Online (Sandbox Code Playgroud)
您能否向我解释或指出我能在哪里找到答案(Google将*解释为外卡字符,因此我找不到满意的答案).
非常感谢你.
究竟是什么*args和**kwargs意味着什么呢?
根据Python文档,从它看来,它传递了一个参数元组.
def foo(hello, *args):
print hello
for each in args:
print each
if __name__ == '__main__':
foo("LOVE", ["lol", "lololol"])
Run Code Online (Sandbox Code Playgroud)
打印出:
LOVE
['lol', 'lololol']
Run Code Online (Sandbox Code Playgroud)
你如何有效地使用它们?
我正在抓住以下代码中的内容.
class foo(object):
def __init__(self,*args):
print type(args)
print args
j_dict = {'rmaNumber':1111, 'caseNo':2222}
print type(j_dict)
p = foo(j_dict)
Run Code Online (Sandbox Code Playgroud)
它产生:
<type 'dict'>
<type 'tuple'>
({'rmaNumber': 1111, 'caseNo': 2222},)
Run Code Online (Sandbox Code Playgroud)
在我看来,这个代码将字典转换为元组!谁能解释一下呢