在python中,可以检查函数是否进行函数调用,其中命名参数作为位置参数调用?
例如:def a(pos_arg, nam_arg=None, nam_arg2=None):
return "whatever"
def b():
return a(1, 2, nam_arg2="whatever")
这里,函数b调用函数a,但第二个参数是命名参数,它被作为位置参数调用。当对象继承开始起作用时,这可能会导致令人困惑的问题。
最好是:
def b():
return a(1, nam_arg=2, nam_arg2="whatever")
为了测试的目的(因为这在我的项目中通常是不好的代码),我想知道函数b()
是否会进行这样的调用。
这在python中可能吗?
你把你的问题标记为python-2.7,但为了将来的观众,我想说的是,在python 3中,我们现在有了仅关键字参数的功能,允许定义这样的函数:
def func(pos_arg, *, kw_only_arg):
pass
在这种情况下,kw_only_arg
只允许用作关键字参数。如果你不能使用python 3,那么这里有一个食谱可以帮助你:http://code.activestate.com/recipes/578993-keyword-only-arguments-in-python-2x/