【发布时间】:2019-05-09 01:10:21
【问题描述】:
我在python的函数定义中遇到了一个奇怪的案例,我看了一些这样的代码:
def abc(dd, *, ee=None):
print(dd, ee)
一开始我还以为这段代码是错误的,可能是*args的错别字,但是最近在最新的python3.7中尝试了这段代码,好像可以解释,用法也超级连线,您不能向此函数传递超过 1 个参数:
>>> abc(11, 222)
Traceback (most recent call last):
File "<input>", line 1, in <module>
abc(11, 222)
TypeError: abc() takes 1 positional argument but 2 were given
>>> abc(11)
11 None
我问是因为我不知道为什么有人这样写的目的,以及为什么python在Python3中支持这种行为(在python2中不支持)
【问题讨论】:
标签: python python-3.x python-2.7