在 Python 中有没有一种方法可以“类型”函数或函数 继承测试套件?我正在做一些评估几个不同的工作 具有不同标准的不同功能的实现(对于 例如,我可能会根据速度评估不同的排序功能 数组大小和内存要求)。和我 希望能够自动化功能测试。所以我会 就像一种将函数识别为实现的方法 某个运算符(operator),以便测试套件可以获取所有功能 是该运算符的实现并通过 测试。
我最初的想法是使用类和子类,但是类 为此,语法有点挑剔,因为我首先要 在我可以调用它之前创建一个类的实例 功能...除非有办法让 init 返回 None 以外的类型。
能否以这种方式使用元类或对象?
最佳答案
函数是 Python 中的一流对象,您可以这样对待它们,例如通过 setattr
添加一些元数据:
>>> def function1(a):
... return 1
...
>>> type(function1)
<type 'function'>
>>> setattr(function1, 'mytype', 'F1')
>>> function1.mytype
'F1'
或者同样使用一个简单的参数化装饰器:
def mytype(t):
def decorator(f):
f.mytype = t
return f
return decorator
@mytype('F2')
def function2(a, b, c):
return 2
关于Python 可继承函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24620126/