Python unittest框架会在每个测试方法之前执行重载设置(self,另一个参数)吗?

Python unittest框架会在每个测试方法之前执行重载设置(self,另一个参数)吗?,python,python-unittest,Python,Python Unittest,如果I重载(不覆盖)设置方法,是否仍会在每个测试方法之前执行 如果没有,是否会影响setUp()的执行(非重载版本)?Python不支持方法重载。实际方法将是上次定义的方法 class A: def foo(self, arg_one): pass def foo(self, arg_one, arg_two): pass A().foo('') Traceback (most recent call last): File "<stdin>", line 1

如果I重载(不覆盖)设置方法,是否仍会在每个测试方法之前执行


如果没有,是否会影响setUp()的执行(非重载版本)?

Python不支持方法重载。实际方法将是上次定义的方法

class A:
    def foo(self, arg_one): pass

    def foo(self, arg_one, arg_two): pass

A().foo('')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: foo() missing 1 required positional argument: 'arg_two'
A类:
def foo(自身,arg_one):通过
def foo(self,arg_1,arg_2):通过
A().foo(“”)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:foo()缺少1个必需的位置参数:“arg_two”

这主要是因为Python是动态类型化语言。如果要(以某种方式)支持重载,则重载规则将过于复杂。

虽然很少使用重载,而且很可能是单向的,但Python已经通过
@functools.singledispatch
在2014年发布的3.4版stdlib中支持重载@goodside“很可能是独断专行的”这是多么保守的说法。。。如果我在生产代码中看到这一点,我会畏缩。也许,但“Python不支持方法重载”也是言过其实。它是stdlib的一部分,在极少数情况下很有用。一种方法是为现有的非Python API编写一个使用重载的包装器,您希望在其中尽可能保持一致性。