基于函数参数名称的条件语句

use*_*396 1 python

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

在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)
Run Code Online (Sandbox Code Playgroud)

Lev*_*sky 5

你应该使用关键字参数:

def func(a, b, c, **kwargs):
    if 'd' in kwargs:
        ....
    elif 'c' in kwargs:
        ....
Run Code Online (Sandbox Code Playgroud)

但这并不完全等同于你想要的东西.如果你想保证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:
        ....
Run Code Online (Sandbox Code Playgroud)

请注意,这并不是您所要求的.它不会访问作为位置参数传递给函数的变量的"原始"名称,如Stuart链接的问题.你甚至不应该尝试这样做,这是毫无意义的.