如何组合函数调用的参数列表

时间:2015-09-13 07:28:28

标签: python python-3.x

我有这样的功能:

def test(*args):
    if 'test1' in args:
        print('Test1')

    if 'test2' in args:
        print('Test2')

    if 'test3' in args:
        print('Test3')

现在,我的问题是:我有一些变量(比如a, b, c),我想检查一些活动的变量(或某些东西),然后调用我的函数。

例如:如果aTrue,则请致电test('test1')。但如果bcTrue,请致电test('test2', 'test3')。如果acTrue。致电test('test1', 'test3')

但我不知道怎么能这样做,我只能这样做:

if a:
    test('test1')
    if b:
        test('test1', 'test2')
        if c:
            test('test1', 'test2', 'test3')

if b:
    test('test2')

and some more code like these.

我认为有一种简单的方法可以做到这一点。

2 个答案:

答案 0 :(得分:2)

请查看这是否是您想要的:

a = True
b = True
c = False

args = []

if a: args.append('test1')
if b: args.append('test2')
if c: args.append('test3')

test(*args)

答案 1 :(得分:1)

from itertools import takewhile
test(*takewhile(bool, (a, b, c)))