一分钟读懂Python编程的三个特殊方法

作者: rivrui | 来源:发表于2018-06-20 23:25 被阅读21次

在Python中有着三类特殊方法:静态方法、类方法以及抽象方法。今天我们来谈谈其中的这三类特殊方法。

在此之前你可能已经写过许许多多的方法但从未深入的思考。

静态方法

静态方法是属于类的方法,但实际上并非在类的实例上运行。

示例1 @staticmethod的用法

image

也可以像非静态方法那样写fun_1,它会接收self作为参数但是不会真地使用它。

装饰器@staticmethod提供了下面几点特性:

①Python不必为我们创建的每个Pizza对象实例化来绑定一个方法。绑定方法也是创建对象,创建对象则需要开辟新的空间,消耗资源。而静态方法则规避了这类开销:

image image

②提高了代码的可读性。当看到staticmethod时,我们可以立即知道这个方法不需要创建对象就可以直接使用。

③可以在子类中覆盖静态方法。

类方法

类方法是直接绑定到类的而非它的实例的方法:

image image

如果我们选择访问这个方法,它会被绑定在附属的类上面,它的第一个参数是类本身cls。记住,类也是对象。

抽象方法

抽象方法是定义在基类中可能有或者没有任何实现的方法。Python中一个最简单的抽象方法类似下面的func_4:

image

任何继承了这个含有抽象方法都必须重写这个抽象方法,否则调用的时候会抛出异常。这里的一个缺陷就在于,如果我们忘记了重写实现这个抽象方法,只有在调用这个方法的时候才会抛出异常。

我们还可以使用内置的abc模块实现抽象方法:

image

关于Python编程中的三类特殊方法的特性,是由这Python本身的特性所决定的。

推荐阅读:

Python匿名函数快速入门

[菜鸟致敬⑤] 极简搭建 hexo博客

免主机搭建动态博客WordPress

我的个人博客

相关文章

  • 一分钟读懂Python编程的三个特殊方法

    在Python中有着三类特殊方法:静态方法、类方法以及抽象方法。今天我们来谈谈其中的这三类特殊方法。 在此之前你可...

  • Python从入门到精通

    Python语法的三个阶段 Python基础语法函数是编程 Python进阶语法面向对象编程 Python高级语法...

  • Fluentpython Python的特殊方法

    Fluentpython 特殊方法 特殊方法的存在是为了被 Python 解释器调用的Python 语言参考手册中...

  • 关于 super

    来自于 python 核心编程 重写__init__不会自动调用基类的__init__类似于上面的覆盖非特殊方法,...

  • Python10--类中的魔法方法

    1.类中的特殊方法(魔法方法) 在 Python 中有一些特殊的方法,它们是 Python 内置的方法,通常以双下...

  • Python 特殊方法一览

    Python 特殊方法一览 和运算符无关的特殊方法 和运算符相关的特殊方法

  • Python的特殊方法

    Python 解释器碰到特殊的句法时,会使用特殊方法去激活一些基本的对象操作,这些特殊方法的名字以两个下划线开头,...

  • *(扩展)定制类

    用特殊方法定制类 ***********************#特殊方法是Python 中用来扩充类的强有力的方...

  • Python中的特殊方法和语法

    一、Python中特殊方法 1、Python如何把任意类型变量变成str? 因为任意数据类型的实例都有一个特殊方法...

  • python面向对象编程(3)|方法和访问权限

    今天我们来学习python面向对象编程的三种方法和访问权限。 方法 上次我们已经说过,python面向对象编程一共...

网友评论

本文标题:一分钟读懂Python编程的三个特殊方法

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