
1 inhzus 2019 年 9 月 20 日 via Android 这个问题算是 Python 的基础吧,v 站之前也有过类似问题,Google 关键词 Python dict unpacking and packing。希望可以善用搜索引擎 |
3 ysc3839 2019 年 9 月 20 日 via Android 因为 print 不接受 keyword args。 |
4 ysc3839 2019 年 9 月 20 日 via Android @ysc3839 更正一下:不是不接受 keyword args,是不接受 port 这个 keyword。 https://docs.python.org/3/library/functions.html#print |
5 hushao 2019 年 9 月 20 日 理解**kwargs 在做什么就知道了 |
6 littlespider89 2019 年 9 月 20 日 第四行相当于 print('[LOG]', port=3000, host='haha') 你看看 print 的函数签名,就知道了 |
7 oahebky 2019 年 9 月 21 日 t = ("foo", "bar") print("*args: ", *t) 相当于 print("*args: ", "foo", "bar") kw = {"foo": "bar"} print("**kw: ", **kw) 相当于 print("**kw: ", foo="bar") 也就是说 **kw 作为参数: 1. 并非是:func("key1=value1", "key2=value2") 2. 并非是:func(key1, value1, key2, value2) 这也是合理,因为它本来就应该是这样子。 ------ 所以有些代码可能这么写: dict_ = { "key1": "value1", "key2": "value2", } class A: def __init__(key1, key2): ...略... a = A(**dict_) ====== (因为 V2EX 评论显示问题,所以上面代码的空格无法显示。) |