python类方法、静态方法和实例方法的使用

1、python中类的方法类别

2、各个方法之间的功能差异

3、各个方法的调用格式

4、使用举例

python中类的方法有三种,分别为:

  1. 类方法,通过装饰器@calssmethod进行修饰。
  2. 静态方法,通过装饰器@staticmethod进行修饰。
  3. 实例方法,属于方法类型的函数。

为什么要分为三种不同的方法呢?他们之间有什么区别和差异呢?首先这三种方法的可以获取类的属性和变量范围不同,具体区别如下:

  1. 类方法:不能获取构造函数定义的变量,可以获取类的属性。
  2. 静态方法:不能获取构造函数定义的变量,也不可以获取类的属性。
  3. 实例方法:既可以获取构造函数定义的变量,也可以获取类的属性值。

除了三种方法可以获取的类的属性存在差异,具体在方法本身被调用的方式上也有所差异,具体如下:

  1. 类方法:有两种调用方式,a.类名.类方法名 b.实例化调用
  2. 静态方法:有两种调用方式,a.类名.静态方法名 b.实例化调用
  3. 实例方法:见名知意,也许命名就是告诉大家,它只能通过实例化进行调用,事实也是。

基于以上理解,举个例子:

class FunctionTest:
    fun = "test"

    def __init__(self):
        self.__name = "function"
        self.__age = 2

    @classmethod
    def execute_class(cls):
        logging.info("this is class method!")

    @staticmethod
    def execute_static(x):
        logging.info("this is static method!")
        logging.info(f"{x} is a num.")

    def execute_normal(self):
        logging.info("This is normal method!")

if __name__ == '__main__':

    # 实例化调用
    FT = FunctionTest()
    # 只能通过实例化调用
    FT.execute_normal()
    # 实例化调用
    FT.execute_static(7)
    FT.execute_class()
    # 类.方法名 调用
    FunctionTest.execute_static(9)
    FunctionTest.execute_class()

执行结果如下:

2022-26-04 17:15:45:INFO:This is normal method!

2022-26-04 17:15:45:INFO:this is static method!

2022-26-04 17:15:45:INFO:7 is a num.

2022-26-04 17:15:45:INFO:this is class method!

2022-26-04 17:15:45:INFO:this is static method!

2022-26-04 17:15:45:INFO:9 is a num.

2022-26-04 17:15:45:INFO:this is class method!

Original: https://blog.csdn.net/sy20173081277/article/details/124432031
Author: 乘风万万里
Title: python类方法、静态方法和实例方法的使用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/732066/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Go | 闭包的使用

    闭包基本介绍 闭包就是 一个函数 和其相关的 引用环境 组合的一个整体 好处: 保存引用的变量,下次继续使用,不会销毁 下面通过闭包的方式,写一个数字累加器,体验一下闭包的妙处👇 …

    Python 2023年10月13日
    040
  • SLAM多传感器融合调研

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、松耦合 * 1.DEMO 2.V-LOAM 3.Visual-Inertial-Laser 4…

    Python 2023年10月10日
    076
  • Linux下MMDetection环境配置

    1. 准备工作 Linux发行版。 Pop!_OS 22.04 LTS (NVIDIA) (Ubuntu衍生) 对Linux进行配置,更改国内镜像源。 安装conda环境。官网下载…

    Python 2023年10月28日
    040
  • python中df head_解决Python spyder显示不全df列和行的问题

    python中有的df列比较长head的时候会出现省略号,现在数据分析常用的就是基于anaconda的notebook和sypder,在spyder下head的时候就会比较明显的遇…

    Python 2023年8月21日
    0141
  • 功能性模块:(9)Pearson Correlation coeffiicient的简单理解

    1. 背景 最近LZ正在恶补一些nlp相关的知识,其中在判断句子文本相似性的时候,使用了Pearson correlation和Spearman’s rank corr…

    Python 2023年8月29日
    063
  • python 菜单页面、选择游戏_python菜单游戏菜单游戏。。。

    我正在用pygame和其他一些库用python制作一个游戏。我把主菜单作为一个python文件,当一个玩家被选中时,它启动游戏文件。如果你在玩游戏时选择返回菜单,它会再次启动菜单。…

    Python 2023年9月21日
    058
  • 为什么最近每份 Android 简历都说 “熟悉 MQTT 协议”?

    请点赞关注,你的支持对我意义重大。🔥 Hi,我是小彭。本文已收录到GitHub · AndroidFamily 中。这里有 Android 进阶成长知识体系,有志同道合的朋友,关注…

    Python 2023年10月22日
    029
  • matplot.pyplot 绘制图像 回顾

    按年月进行计数,汇总例子 导包 import pandas as pd import matplotlib.pyplot as plt 读取数据 path = r’C:\Users…

    Python 2023年8月8日
    060
  • .Net+Vue3实现数据简易导入功能

    在开发的过程中,上传文件或者导入数据是一件很常见的事情,导入数据可以有两种方式: 这两种方式需要根据不同的业务才进行采用 这次用.Net6.0+Vue3 来实现一个数据导入的功能 …

    Python 2023年10月23日
    029
  • 神经网络的入门

    神经网络的介绍 神经元:多个输入—->权重—>偏置—>激励函数—>输出符号表示:x为输入函数,W为权重,b为偏置常量,f为激励函数,y为输出则y…

    Python 2023年8月28日
    039
  • 卷积神经网络(原理与代码实现)

    [ 卷积神经网络( CNN)和全连接 神经网络(FCN)以及循环 神经网络(RNN)都是 深度学习_中常见的 _神经网络_模型,它们有各自的优缺点和适用场景。 1. _原理 实现_…

    Python 2023年7月31日
    044
  • Pytest+Yaml+Excel 接口自动化测试框架

    获取框架源码方式,关注公众号【测试之路笔记】(文末有公众号二维码) 回复:20220111对于框架任何问题,欢迎联系我! 一、框架架构 ; 二、项目目录结构 三、框架功能说明 解决…

    Python 2023年9月9日
    063
  • [python][flask] Flask 入门(以一个博客后台为例)

    1.安装 1.1 创建虚拟环境 1.2 进入虚拟环境 1.3 安装 flask 2.上手 2.1 最小 Demo 2.2 基本知识 3.解构官网指导 Demo 3.1 克隆与代码架…

    Python 2023年6月16日
    092
  • Windows版 PostgreSQL 利用 pg_upgrade 进行大版升级操作

    最近 PostgreSQL 15 版本正式发布了,新版本的各种特性和好处本文就不展开介绍了,主要介绍一下 Windows 环境下 PostgreSQL 大版本升级的方法,我们现在的…

    Python 2023年10月18日
    059
  • Pytest入门

    单元测试框架 java:junit和testingpython:unittest和pytest 单元框架主要做了什么 Pytest单元测试框架和自动化测试框架的关系 单元测试框架:…

    Python 2023年9月14日
    061
  • Matplotlib快速入门

    1. Matplotlib 常用模块 Matplotlib 库中主要包含两个重要模块 pyplob 和 pylab。 pyplot 是 Matplotlib 中的一个重要模块,在后…

    Python 2023年9月6日
    043
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球