使用元类定义的实际示例,例如将其设置为ABCMeta或LoggingType

时间:2015-04-17 06:12:43

标签: python logging metaclass abc

将myaclass设置为LoggingType我在工作场所发现的示例。

import logging as _logging
class SomeClass(object):
    __metaclass__ = _logging.LoggingType

以下是ABCMeta设置为__metaclass__

的示例

我想知道实际的优势,如果它们是将ABCMeta设置为元类的任何示例,如下所示:来自docs

from abc import ABCMeta

class MyABC:
    __metaclass__ = ABCMeta

对我来说,我的问题听起来像是如何利用

 register(subclass)

    Register subclass as a “virtual subclass”

我们如何从中受益?

如果您发现我的问题重复,请将此帖链接到!!

1 个答案:

答案 0 :(得分:0)

  

抽象基类是一种更严格的接口检查形式   比单个hasattr()检查特定方法。通过定义   一个抽象基类,您可以为一组定义一个通用API   子类。此功能在以下情况下特别有用   第三方将提供实现,例如使用插件   一个应用程序,但也可以帮助你在一个大型团队工作   或者使用一个大型代码库来保持所有课程   同时很难或不可能。

参考:http://pymotw.com/2/abc/