美文网首页Python小哥哥
python:元类的实际使用

python:元类的实际使用

作者: 我爱学python | 来源:发表于2019-03-27 16:34 被阅读0次

您可以使用元类对属性、方法及其值执行不同的准则。前面例子(使用 snake_case)的类似示例包括:

值的域限制

隐式转换自定义类的值(您可能希望向用户隐藏编写类的所有这些复杂方面)

执行不同的命名约定和样式准则(比如,“每种方法都应有一个文档字符串”)

向类添加新的属性

在类定义本身中定义所有这种逻辑时使用元类,主要原因就是为了避免在整个代码库中出现重复代码。

元类的实际使用

因为在子类中会继承元类,所以元类解决了代码冗余(不要重复自己 — DRY)这一实际问题。 通常情况下,在生成类对象的同时,通过执行额外操作或添加额外代码,元类也可以帮助提取有关类创建的复杂逻辑。元类的一些实际用例包括:

抽象基类

类的注册

在库和框架中创建 API

我们来具体看一下每个示例。

抽象基类

抽象基类是只能被继承而不会被实例化的类。Python 具有以下内容:

我们来创建一个从 Vehicle 类继承的 Truck 类:

请注意,我们没有实现抽象方法。我们来看下如果尝试实例化 Truck 类的对象会发生什么情况:

可以通过在 Truck 类中定义两种抽象方法来修复这个问题:

类的注册

为理解这一点,我们以某个服务器上的多个文件处理程序为例。想法就是能够根据文件格式快速找到正确的处理程序类。我们将创建处理程序字典,让 CustomMetaclass 注册在代码中遇到的不同处理程序:

现在,根据文件格式,我们很容易就知道要使用哪个处理程序类。一般来说,无论何时需要维护存储类特征的某种数据结构,都可以使用元类。

相关文章

  • python:元类的实际使用

    您可以使用元类对属性、方法及其值执行不同的准则。前面例子(使用 snake_case)的类似示例包括: 值的域限制...

  • Python 进阶丨如何创建你的第一个 Python 元类?

    摘要:通过本文,将深入讨论Python元类,其属性,如何以及何时在Python中使用元类。 Python元类设置类...

  • 10.元类

    元类的对象是类type是python的内建元类 自定义元类:

  • 29.Python之面向对象的元类

    Python之面向对象的元类 什么是元类?类的类就是元类,元类创建对象。使用class定义的类,用来产生程序员自己...

  • Python 元类

    什么是元类?元类就是创建类的类,type是最原始的一个元类。(实例是实例化的类,而类是元类的实例)python中一...

  • 深入理解Python的元类

    类也是对象 在理解Python的元类之前,你需要掌握Python的类相关的知识。Python的类,有一个借鉴自Sm...

  • python重要知识点总结一

    内容包含: 元类 python 对象和类的绑定以及类方法,静态方法 python 子类调用父类方法总结 pytho...

  • Python元类及单例设计模式案例解析

    Time will tell. 一、元类 元类用于创建类的类。在 python 中,万物皆对象,类当然也是对象。 ...

  • scala类与伴生类、单例

    类似python元类与apply方法类似python中call方法

  • 面试常考(python)

    Python语言特性 1.Python的函数参数传递 2.元类 metaclass metaclass 允许创建类...

网友评论

    本文标题:python:元类的实际使用

    本文链接:https://www.haomeiwen.com/subject/imttbqtx.html