系统学习Python——类(class):静态方法(staticmethod)和类方法(classmethod)-[使用静态方法和类方法的原因]

本文主要是介绍系统学习Python——类(class):静态方法(staticmethod)和类方法(classmethod)-[使用静态方法和类方法的原因],希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

分类目录:《系统学习Python》总目录


正如我们已经学习过的,类方法通常在其第一位参数中传人当前实例对象,以充当方法调用的一个隐式主体一一这也就是“面向对象编程”中的“对象”。然而今天,有两种方法来修改这种模型。在说明这两种方法之前,我们应该介绍一下为什么这与我们有关。

有时候,程序需要处理与类而不是与实例相关的数据。比如要记录由一个类创建的实例的数目,或者维护当前内存中一个类的所有实例的列表。这种形式的信息以及相应的处理与类相关,而非与其实例相关。也就是说,这种信息通常存储在类自身上,而且不需要任何实例就可以处理。

对于这样的任务,一个在类外部编写的简单函数往往就能够胜任。因为它们可以通过类名访问类属性,所以它们能够访问类数据并且不需要通过一个实例。然而,要更好地把这样的代码与一个类联系起来,并且允许这样的过程像往常一样用继承来定制,在类自身之中编写这类函数将会更好。为了做到这点,我们需要一个类中的方法不仅不传递而且也不期待一个self实例参数。

Python通过静态方法的概念来支持这样的目标。静态方法是嵌套在一个类中的没有self参数的简单函数,并且旨在操作类属性而不是实例属性。静态方法不会接受一个自动的self参数,不管是通过一个类还是一个实例被调用。它们通常会记录横跨所有实例的信息,而不是为实例提供行为。

尽管较少用到,Python还支持类方法的概念。类方法是类的一种方法,传人给它们的第一位参数是一个类对象而不是一个实例对象,不管是通过一个实例或一个类调用它们。这种方法也可以通过传人它们的类参数来访问类数据(也就是我们常说的self),即便是通过实例来调用也是如此。常规的方法(实例方法)在调用的时候则需要另外接受一个主体实例,静态方法和类方法则不会。

参考文献:
[1] Mark Lutz. Python学习手册[M]. 机械工业出版社, 2018.

这篇关于系统学习Python——类(class):静态方法(staticmethod)和类方法(classmethod)-[使用静态方法和类方法的原因]的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/579263

相关文章

如何使用 Python 读取 Excel 数据

《如何使用Python读取Excel数据》:本文主要介绍使用Python读取Excel数据的详细教程,通过pandas和openpyxl,你可以轻松读取Excel文件,并进行各种数据处理操... 目录使用 python 读取 Excel 数据的详细教程1. 安装必要的依赖2. 读取 Excel 文件3. 读

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

利用Python调试串口的示例代码

《利用Python调试串口的示例代码》在嵌入式开发、物联网设备调试过程中,串口通信是最基础的调试手段本文将带你用Python+ttkbootstrap打造一款高颜值、多功能的串口调试助手,需要的可以了... 目录概述:为什么需要专业的串口调试工具项目架构设计1.1 技术栈选型1.2 关键类说明1.3 线程模

Python ZIP文件操作技巧详解

《PythonZIP文件操作技巧详解》在数据处理和系统开发中,ZIP文件操作是开发者必须掌握的核心技能,Python标准库提供的zipfile模块以简洁的API和跨平台特性,成为处理ZIP文件的首选... 目录一、ZIP文件操作基础三板斧1.1 创建压缩包1.2 解压操作1.3 文件遍历与信息获取二、进阶技

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

解决Maven项目idea找不到本地仓库jar包问题以及使用mvn install:install-file

《解决Maven项目idea找不到本地仓库jar包问题以及使用mvninstall:install-file》:本文主要介绍解决Maven项目idea找不到本地仓库jar包问题以及使用mvnin... 目录Maven项目idea找不到本地仓库jar包以及使用mvn install:install-file基

Windows 上如果忘记了 MySQL 密码 重置密码的两种方法

《Windows上如果忘记了MySQL密码重置密码的两种方法》:本文主要介绍Windows上如果忘记了MySQL密码重置密码的两种方法,本文通过两种方法结合实例代码给大家介绍的非常详细,感... 目录方法 1:以跳过权限验证模式启动 mysql 并重置密码方法 2:使用 my.ini 文件的临时配置在 Wi

MySQL重复数据处理的七种高效方法

《MySQL重复数据处理的七种高效方法》你是不是也曾遇到过这样的烦恼:明明系统测试时一切正常,上线后却频频出现重复数据,大批量导数据时,总有那么几条不听话的记录导致整个事务莫名回滚,今天,我就跟大家分... 目录1. 重复数据插入问题分析1.1 问题本质1.2 常见场景图2. 基础解决方案:使用异常捕获3.

最详细安装 PostgreSQL方法及常见问题解决

《最详细安装PostgreSQL方法及常见问题解决》:本文主要介绍最详细安装PostgreSQL方法及常见问题解决,介绍了在Windows系统上安装PostgreSQL及Linux系统上安装Po... 目录一、在 Windows 系统上安装 PostgreSQL1. 下载 PostgreSQL 安装包2.

Python正则表达式语法及re模块中的常用函数详解

《Python正则表达式语法及re模块中的常用函数详解》这篇文章主要给大家介绍了关于Python正则表达式语法及re模块中常用函数的相关资料,正则表达式是一种强大的字符串处理工具,可以用于匹配、切分、... 目录概念、作用和步骤语法re模块中的常用函数总结 概念、作用和步骤概念: 本身也是一个字符串,其中