Python进阶:一步步理解Python中的元类metaclass

2020-06-19 00:00:00 创建 函数 参数 模块 自定义
虽然Python本身很难说是面向对象语言,但Python中的数据模型(data model)可以说真的是“纯面向对象”。在Python的世界里,一切皆是对象。无论是数值、字符串、序列、字典、函数、模块、类、实例、文件等等。

元类(metaclass)是Python 2.2中引入的概念,它的作用是定制类的创建行为。这么解释可能有点难理解,那么这篇文章就通过实例,一步步解释Python中的元类。



1. Python中一切皆对象,包括类

class Foo:
def hello(self):
print("hello world!")
return

foo = Foo()
print(type(foo))            # <class '__main__.Foo'>
print(type(foo.hello))      # <class 'method'>
print(type(Foo))            # <class 'type'>

temp = Foo                  # 赋值给其他变量
Foo.var = 11                # 增加参数
print(Foo)                  # 作为函数参数

相关文章