Python - 函数类

时间:2017-06-13 16:26:19

标签: python python-2.7

def Func():
    pass

在IPython会话中,当我输入type(Func)时,输出为“function”。由于Python是一种面向对象的语言,我假设有一类“Func”是一个实例。所以我尝试用这种方式创建自己的类:

class MyFunc(function):
    pass
唉,解释器只是抛出一个“NameError”抱怨“函数”没有定义。 所以,我试着做一点聪明并做到了这一点:

class myfunc(func.__class__):
    pass
唉,它失败了......

TypeError: Error when calling the metaclass bases
    type 'function' is not an acceptable base type

总之,任何人都可以解释: 1)。如何创建一个派生自“函数”类型的类。如果不可能,为什么? 2)。错误信息的真正含义。

1 个答案:

答案 0 :(得分:0)

  

总之,任何人都可以解释:1)。如何创建一个派生自类型"函数"。

的类

你不能。

  

如果不可能,为什么? 2)。错误信息的真正含义。

该错误消息意味着Python不允许类使用函数类型作为基类。用C实现的类只有在设置了特定标志时才能扩展;如果他们不这样做,这是你试图扩展它们时得到的错误。