加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
py07-metaclass01.py 810 Bytes
一键复制 编辑 原始数据 按行查看 历史
eddiechow 提交于 2018-02-09 16:47 . demo增加
# -*- coding:utf-8 -*-
"""元类的使用"""
__author__ = 'Eddie Chow'
def fn(self, name='world'):
print('Hello , %s' % name)
def add(self, value):
self.append(value)
class MyListMetaClass(type):
def __new__(cls, name, bases, attrs):
print('通过元类来创建一个类:%s,%s,%s,%s' % (cls, name, bases, attrs))
attrs['add'] = add
return type.__new__(cls, name, bases, attrs)
class MyList(list, metaclass=MyListMetaClass):
pass
if __name__ == '__main__':
Hello = type('Hello', (object,), dict(hello=fn))
h = Hello()
h.hello()
# class的类型就是 type
print(type(Hello))
# 实例的类型就是 Hello
print(type(h))
# 用元类创建类
mylist = MyList()
mylist.append(1)
mylist.add(2)
print(mylist)
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化