表示“全部”的默认参数

时间:2012-02-28 12:42:05

标签: python python-3.x

我想给run方法一个默认参数,这样如果没有给出test_cases参数,它将运行所有测试用例。你会怎么建议我这样做?

from collections import OrderedDict
class TestCase(OrderedDict):
    def run(self, test_cases):
        for test_case_name in test_cases:
            self[test_case_name].run()

2 个答案:

答案 0 :(得分:4)

from collections import OrderedDict
class TestCase(OrderedDict):
    def run(self, test_cases=None):
        if test_cases is None:
            test_cases = default_all_test_cases # add all your default test cases here
        for test_case in test_cases:
            test_case.run()

您可以使用其他不可变对象替换默认的None,例如字符串或整数。

答案 1 :(得分:1)

我会使用test_cases=None,然后只说if not test_cases: test_cases=[all,values,here];这种情况也适用于空序列。