Python 可继承函数

标签 python oop inheritance metaclass

在 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/

相关文章:

java - 如何组织具有两种不同类型用户的 OO 设计

python - 使用 Python 将我的 Windows 计算机关联到 wifi AP

class - "monolithic"是什么意思?

java - 捕获内存不足错误的正确位置

php - 动态使用 setter 和 getter 的 symfony Doctrine

Delphi IDE 将 TFrame 视为表单

objective-c - 继承 objective-c

java - superClass 的私有(private)成员是否由子类继承......Java?

python - 如何在Python中进行单元测试以检查输入不为空

python - 如何使用KV语言在Kivy中制作自定义按钮?