在python中,您可以通过属性将元数据添加到函数中,如Python data model中所述:
功能对象还支持获取和设置任意属性,这些属性可以用于例如将元数据附加到函数。
我有一个函数将另一个函数作为输入,希望它具有这样的元数据属性。使用类型Callable
注释此功能时,我无法强制使用此属性。因此,我想做一个内置function
类的子类,以确保元数据的存在,以便在类型注释中使用。
只有一个小问题:除了运行时,我找不到对该类的引用。例如,据我所知,builtins
模块没有函数类。
答案 0 :(得分:3)
无法在Python中继承the built-in function type。
>>> class MyFunction(type(lambda: None)):
... pass
...
TypeError: Error when calling the metaclass bases
type 'function' is not an acceptable base type
请考虑使用可调用类:创建一个用户定义的类型,该类型记录所需的元数据属性并定义一个__call__
方法。