可能重复:
如何获取传递给函数的变量的原始变量名
在 python 中是否有类似下面的内容,根据传递给函数的参数名称,我们可以执行如下条件语句。
def func(a,b,c,d)
if fourth paramter = d:
#code
elif fourth parameter = e:
#code
else:
#code
def main():
func(a,b,c,d)
func(a,b,c,e)
可能重复:
如何获取传递给函数的变量的原始变量名
在 python 中是否有类似下面的内容,根据传递给函数的参数名称,我们可以执行如下条件语句。
def func(a,b,c,d)
if fourth paramter = d:
#code
elif fourth parameter = e:
#code
else:
#code
def main():
func(a,b,c,d)
func(a,b,c,e)
您应该使用关键字参数:
def func(a, b, c, **kwargs):
if 'd' in kwargs:
....
elif 'c' in kwargs:
....
但是,这并不完全等同于您想要的。如果要保证d
ore
是第四个参数,那就比较麻烦了。
然后你可以尝试类似的东西:
def func(a, b, c, d=None, e=None):
if d is not None and e is None:
....
elif e is not None and d is None:
....
请注意,这并不完全是您要问的。它不会访问作为位置参数传递给函数的变量的“原始”名称,如Stuart 链接的问题中那样。你甚至不应该尝试这样做,这是没有意义的。
kwargs
不会给你你想要的,但它可以很接近:
def func(a, b, c, **kwargs):
if 'd' in kwargs:
print "do something"
elif 'e' in kwargs:
print "do something else"
def main():
func(a = 1 ,b = 2 ,c = 3, d = 'some_value')
func(a = 1 ,b = 2 ,c = 3, e = 'some_value')