一、元类
1.类也是对象
- 元类是类的类,是类的模板
- 元类的实例为类,正如类的实例为对象。
![](https://img-blog.csdnimg.cn/20200106213924144.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RhaWRhZGVndWFpZ3VhaQ==,size_16,color_FFFFFF,t_70)
2.类的本质是对象, 于是可以对类做如下的操作:
1.
你可以将它赋值给一个变量
2.
你可以拷
⻉
它
3.
你可以为它增加属性
4. 你可以将它作为函数参数进行传递
方法一
:
通过分支语句动态地创建类
因为类也是对象,
运行时在函数中使用
class
关键字动态的创建类。
当使用
class
关键字时
,Python
解释器自动创建这个对象。当然
Python
提供手动处理的方法。
如:
def create_class(name):
if name == 'foo':
class Foo(object):
pass
return Foo
else:
class Bar(object):
pass
return Bar
cls = create_class(name='foo1')
print(cls.__name__)
测试结果:
Bar
方法二: 通过type函数动态创建类
type函数功能一:
判断对象的类型。
type
函数功能二
:
动态的创建类。
type
可以接受一个类的描述作为参数
,
然后返回一个类。
type
函数语法
: type(
类名, 父类名称的元组
,
属性信息
)
例如:
def hello(self):
print("hello")
Person = type('Person',(object, ), {'country':'China', 'hello':hello})
p1 = Person()
print(p1.country)
p1.hello()
测试结果:
China
hello
3.什么是元类