获取(*(1,2),*(3,4))
的语法(1,2,3,4)
作为标准受支持,因此是可移植的,还是应该避免它只是实现定义的语法
在使用notepad++插件的python控制台时,我发现
bytes((*range(ord('a'),ord('z')+1),*range(ord('A'),ord('Z')+1))).decode()
及
"".join(map(chr,(*range(ord('a'),ord('z')+1),*range(ord('A'),ord('Z')+1))))
但这些都导致了同样的语法错误。但是我在WindowsIDLE 3.6.3shell和UbuntuPython3.6.5($ python3
)中尝试了这一点,并且都成功了
因此,我在npp python插件控制台中尝试了(*(1,2), *(3,4))
,它与IDLE和ubuntu中的错误形成了对比
是因为npp插件控制台不支持python,还是语法不标准
我试图找到信息,但我甚至无法得到关键字。没有人在谈论语法重新打包
在Python3.7中,它是有效的
在Python3.4中,它没有
Python3.5(我想)通过解包引入了这些构造元组、dict等的新方法
您可能在这两个环境中使用了两个不同版本的python-3.x
下面是另一个关于
dict
的有趣例子。合并两条格言这里是PEP-448-它引入了这种语法
Python 3.5+支持您共享的代码,但任何旧版本都不支持
我不建议您在这里使用
*
运算符,它通常不用于这种用法-更多用于函数调用中的可变参数。如果有什么不同的话,可以使用一两个迭代器,这样会更清楚简单性和可维护性在实际代码中非常重要
祝你好运
相关问题 更多 >
编程相关推荐