python元类

元类就是类的类,是用来创建这些类(对象)的

1
2
3
4
5
6
7
#使⽤元类创建出⼀个对象,这个对象称为"类"
MyClass = MetaClass()
#使⽤"类"来创建出实例对象
MyObject=MyClass()
Animal = type("Animal",(),{})
a = Animal()

类就是一组用来描述如何生成一个对象的代码段(数据结构和操作这些数据结构的方法组成)
但python中 类也是对象

类本身以及由类创建出来的实例统统都称之为对象,python中一切皆对象,unix一切皆文件

Python中所有的东⻄,指所有的东⻄——都是对象.这包括整数、字符串、函数以及类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
class Person():
# 如下的打印说明:只要你使⽤关键字class
# Python解释器在执⾏的时候就会创建⼀个对象
print('iiii')
pass
p = Person
# type()查看对象是由哪个类创建出来的
# 打印元类:说明类对象是由元类创建的
print(type(p))
# 打印对象
print(100) # 类型在python在其实就是类,100就是由Int类创建的对象
print("femn".__class__)
print(p) # 类也是对象,才能打印出来
print(type(p()))
print(type(100))
# 实例对象是calss创建的,class类也是对象,那这个对象是由type()创建的,
# type(类名, 由⽗类名称组成的元组(针对继承的情况,可以为空),包含属 性的字典(名称和值))
Person2 = type("Person2",(),{})
print(type(Person2()))
# iiii
# <class 'type'>
# 100
# <class 'str'>
# <class '__main__.Person'>
# <class '__main__.Person'>
# <class 'int'>
# <class '__main__.Person2'>

使用type()元类动态创建类,并为此类添加方法

不推荐用元类创建类,还是用class创建类

Share Comments