Python中是否有一种方法可以“输入”函数或函数 继承测试套件?我正在做一些评估几种不同的工作 具有各种标准的不同功能的实现(for 例如,我可以根据速度来评估不同的排序函数 数组大小和内存要求)。和我 希望能够自动化功能的测试。所以我愿意 比如将函数标识为实现的方法 某个运算符,以便测试套件可以只获取所有功能 这是该运算符的实现并通过它运行它们 试验。
我最初的想法是使用类和子类,但是类 为了这个目的,语法有点笨拙,因为我会先做 在我将其称为a之前创建该类的实例 功能......除非有办法允许 init 返回 除None之外的其他类型。
可以这种方式使用元类或对象吗?
答案 0 :(得分:3)
函数是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
答案 1 :(得分:0)
我道歉,因为我无法发表评论,只是为了澄清你所说的&#34;在我将其称为函数之前,我首先必须创建该类的实例...&#34;这不能完成你想做的事吗?
class functionManager:
def __init__(testFunction1 = importedTests.testFunction1):
self.testFunction1() = testFunction1
functionManager = functionManager()
然后只需在您想要使用的地方加入from functionManagerFile import functionManager
行?