Python 面向对象编程与模块系统详解
1. 元类(Metaclasses)
在 Python 中,当定义一个类时,类定义本身会成为一个对象。例如:
class Foo(object): pass
print(isinstance(Foo, object)) # 返回 True
这表明 Foo 是一个对象。实际上,类对象的创建是由一种特殊的对象——元类控制的。简单来说,元类是知道如何创建和管理类的对象。
在上述例子中,控制 Foo 创建的元类是 type 类。可以通过以下方式验证:
print(type(Foo))
输出结果为 <type 'type'> 。
当使用 class 语句定义一个新类时,会发生以下几个步骤:
1. 类的主体作为一系列语句在其自己的私有字典中执行。语句的执行与普通代码相同,只是会对以双下划线开头的私有成员进行名称修饰。
2. 最后,类的名称、基类列表和字典会传递给元类的构造函数,以创建相应的类对象。示例代码如下:
class_name = "Foo"
class_parents = (object,)
class_body = """
def __init__(self, x):
self.x = x
def blah(self):
print("Hello
超级会员免费看
订阅专栏 解锁全文
11万+

被折叠的 条评论
为什么被折叠?



