可能重复:
How to get the original variable name of variable passed to a function
在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)
答案 0 :(得分:5)
您应该使用关键字参数:
def func(a, b, c, **kwargs):
if 'd' in kwargs:
....
elif 'c' in kwargs:
....
但这并不完全等同于你想要的东西。如果您想确保d
或e
是第四个参数,那会更麻烦。
然后你可以试试像:
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链接的question。你甚至不应该尝试这样做,这是毫无意义的。
答案 1 :(得分:0)
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')