1

可能重复:
如何获取传递给函数的变量的原始变量名

在 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)
4

2 回答 2

5

您应该使用关键字参数:

def func(a, b, c, **kwargs):
    if 'd' in kwargs:
        ....
    elif 'c' in kwargs:
        ....

但是,这并不完全等同于您想要的。如果要保证dore第四个参数,那就比较麻烦了。

然后你可以尝试类似的东西:

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 链接的问题中那样。你甚至不应该尝试这样做,这是没有意义的。

于 2013-01-01T21:30:31.900 回答
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')
于 2013-01-01T21:34:40.287 回答