我试图让我的代码不接受关键字参数,就像某些公告也不接受关键字参数一样,但是,我无法这样做。根据我有限的理解,这是我的想法:-
def somefunc(a,b):
print a,b
somefunc(10,20)
Output:
10 20
现在,当我运行以下命令时(我知道这不应该是函数定义中的关键字参数,但是,查看函数调用,它似乎与调用接受关键字参数的函数时的语法相同):
somefunc(b=10,a=20)
Output:
20 10
我有 2 个问题:-
- 查看函数调用
somefunc(b=10,a=20)
而不是函数定义,这似乎可以是对仅接受普通参数的函数的调用,也可以是对接受关键字参数的函数的调用。口译员如何区分两者?
- 是否可以将我们的任何函数转换为某种形式,以便它不像许多内置函数那样接受关键字参数?
我为什么要这么做?我只是检查我是否可以做到这一点,这样我就不会错过深入理解Python的任何内容。我确实不知道 python 是否允许这样做。
您可以使用任意参数列表来执行此操作。看http://docs.python.org/tutorial/controlflow.html#任意-参数-列表
例如:
def somefunc(*args):
print args[0], args[1]
无关键字调用:
somefunc(10,20)
Gives:
10 20
使用关键字调用:
somefunc(a=10,b=20)
给出错误:
TypeError: someFunc() got an unexpected keyword argument 'a'
但尚不清楚您为什么要这样做。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)