栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

__metaclass__在Python 3中

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

__metaclass__在Python 3中

Python
3更改了您指定元类的方式,

__metaclass__
不再检查。

使用

metaclass=...
在类 签名

class Table(object, metaclass=metaTable):

演示:

>>> class metaTable(type):...     def __getattr__(cls, key):...         temp = key.split("__")...         name = temp[0]...         alias = None...         if len(temp) > 1:...  alias = temp[1]...         return cls(name, alias)...>>> class Table(object, metaclass=metaTable):...     def __init__(self, name, alias=None):...         self._name = name...         self._alias = alias...>>> d = Table>>> d.student__s<__main__.Table object at 0x10d7b56a0>

如果需要在代码库中同时提供对Python
2和3的支持,则可以使用

six.with_metaclass()
基类生成器或
@six.add_metaclass()
类装饰器来指定元类。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/617360.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号