在python中,如何验证可选到可选的关键字参数?在
这个问题是对我的this question的一个扩展,关于可选参数的问题,(顺便问一下,它有更好的名称吗?)在
我们知道我们可以用这种方式定义可选参数:
os.fdopen(fd[, mode[, bufsize]])
因此,如果我错误地通过fdopen(sth, bufsize=16)
调用fdopen
,python会指出我必须指定mode
才能使用bufsize
参数。在
这是如何实施的?如果真的能做到这一点,我显然可以写很多东西,但这会导致那些非常复杂的函数的代码变得一团糟,例如:
^{pr2}$
Tags:
在Python级别并没有具体的语法。您必须定义普通的可选参数并自己进行验证。在
你所看到的具体案例是用C语言实现的。根据你所处的平台,C语言的实现是不同的。Here's the version for POSIX, Windows, and OS/2:
使用
^{pr2}$PyArg_ParseTuple
意味着这个函数实际上不接受任何按名称命名的参数。如果执行os.fdopen(sth, bufsize=16)
,则会出现一个类型错误:注意,} was definitely around 。在
bufsize
参数依赖于mode
参数是没有真正原因的。我认为这个函数可能早于关键字参数,尽管很难确定。关键字参数被添加到Pythonall the way back in 1.3,以及python.org网站代表1.4,此时^{相关问题 更多 >
编程相关推荐