# metaclass就是用来创建类的类
"""
1、一切事物皆为对象,python的class(类)本身也是一个对象(实例),它是tpye的对象(实例)
2、所有的类都默认继承object
3、创建类的本质就是type类的实例化 class = tpye(),所以对于type类来说self是类名
"""
# 示例1、演示创建类的本质
class Foo1:
def bar(self):
print('hello Foo1')
# 下面的写法完全等效于上面
"""
1、所有类都是tpye的对象,所以创建类实际上就是创建type的对象,object是所有类的默认父类(即使创建时没有声明)
2、{'bar': fun}表明类Foo2中有一个函数bar,对应的函数是fun
"""
def fun(self):
print('hello Foo2')
Foo2 = type('Foo2', (object,), {'bar': fun})
foo1 = Foo1()
foo2 = Foo2()
foo1.bar()
foo2.bar()