Due to the way the Python C-level APIs developed, a lot of built-in functions and methods don't actually have names for their arguments.
我觉得这很烦人,因为我看医生都不知道。例如,eval
eval(expression, globals=None, locals=None)
然后我写了这行代码
print(eval('a+b', globals={'a':1, 'b':2}))
得到了TypeError: eval() takes no keyword arguments
。那么这类函数是否有完整的列表?如何知道函数是否允许有关键字参数?在
在Python3.5中,您可以检查内置函数的
__text_signature__
:或者
^{pr2}$(
x
不能用作关键字参数)/
表示后面的参数可以用作关键字参数。C、 f当然,即使在3.5版本中也有bug:
虽然根据issue 26729 in the Python bug tracker,但是
iterable
后面应该有/
,因为iterable
不能用作关键字参数。在不幸的是,Python文档本身还没有提供这些信息。在
相关问题 更多 >
编程相关推荐