Python:类如何从函数继承?

2024-05-12 22:21:26 发布

您现在位置:Python中文网/ 问答频道 /正文

以下是一段我无法理解的代码:

class COWMeta(type):
    pass

class COWDictMeta(COWMeta):
    ....

我知道如何在python中创建一个新类:

^{pr2}$

但正如手册所述,“类型”就是功能。在

type(...)
Function of __builtin__ module
type(object) -> the object’s type type(name, bases, dict) -> a new type

类如何从函数继承?这段代码是什么意思?在


Tags: of代码功能类型objecttypefunctionpass
2条回答

type不是函数的方式,例如:

def foo():
    pass

是一个函数。它像函数一样是可调用的(和Python中的许多其他对象一样),但实际上它是作为类编码的。type本身可以向您展示这一区别:

^{pr2}$

文档称它为“函数”不是因为它是如何实现的,而是因为它通常是如何使用的。这与^{}大致相似,虽然文档没有显式地调用函数,但其隐含的含义是:

Return successive r length permutations of elements in the iterable.

但是itertools.permutations是作为一个类实现的:

>>> type(itertools.permutations)
<class 'type'>

type是python中的基本对象类型。与python中的许多对象类型一样,它充当创建新类型的构造函数,但以最简单的形式,它将返回现有对象的类型。它看起来像一个函数。例如,将其与int()和{}进行比较。在

在python中,您可以创建新的类型,也称为元类,允许您在python中执行各种强大而有趣的技巧。基于type的类定义意味着您正在创建一个新的元类。在

请参阅What is a metaclass in Python?以获得关于什么是元类的深入答案。在

相关问题 更多 >