python中静态方法和类方法的区别

Python 实例方法,类方法和静态方法的区别 在 Python 中,实例方法(instance method),类方法(class method)与静态方法(static method)经常容易混淆。本文通过代码例子来说明它们的区别。 1.实例方法 Python 的实例方法用得最多,也最常见。我们先来看 Python 的实例方法。 class Kls(object): def __init__(self, data): self.data = data def printd(self): print(s 阅读详情

1.静态方法就是一个普通的方法,与类和对象无关

2.类方法就是JAVA里面的类方法,属于类,被各个对象共享


class OptSample(object):
    count = 0

    def __init__(self,origin_data):
        self.origin_data = origin_data

    @staticmethod
    def add_number(num1,num2):
        print(num1 + num2)

    @classmethod
    def total(cls):
        print(cls.count)

sample1 = OptSample(1)
sample2 = OptSample(2)
sample1.add_number(2,3)
sample1.total()
运行结果是5和0
静态方法其实和普通方法没什么差别,它的参数列表里面不会出现cls,或者self,在一定程度上解释了为什么它是类和对象无关的


class OptSample(object):
    count = 0

    def __init__(self,origin_data):
        self.origin_data = origin_data
        self.count += origin_data

    @classmethod
    def total(cls):
        print(cls.count)

sample1 = OptSample(1)
sample1.total()

结果是0,很明显self.count += origin_data 是在操作一个对象的属性而非一个类的属性,

通常在类的方法较容易操作类属性

class OptSample(object):
    count = 0

    def __init__(self,origin_data):
        self.origin_data = origin_data

    @classmethod
    def total(cls):
        cls.count += 1
        print(cls.count)

sample1 = OptSample(1)
sample1.total()
OptSample.total()
结果是1和2,类方法通过cls来操作cls
那么就单个对象而言如何在实例方法中去修改类变量?通过self.__class__

class OptSample(object):
    count = 0

    def __init__(self,origin_data):
        self.origin_data = origin_data
        self.__class__.count += origin_data
    @classmethod
    def total(cls):
        print(cls.count)

sample1 = OptSample(122)
sample1.total()
OptSample.total()
结果是122和122
腾讯ACE反作弊系统:内核驱动与AI行为分析如何守护游戏公平 在游戏安全领域,反作弊技术是保障公平竞技环境的核心防线。其基本原理是通过监控系统关键行为,识别并阻断非法的第三方程序干预。从技术实现看,现代反作弊方案普遍采用分层防御架构,结合用户态模块进行应用层检测,并依赖内核态驱动实现底层深度监控,以此构建纵深防御体系。这种技术的核心价值在于,它能有效对抗从简单内存修改到高级驱动级作弊等多种威胁,维护游戏经济系统和玩家体验的完整性。随着作弊手段的演进,行为分析与AI赋能变得至关重要,系统通过机器学习模型分析进程行为序列的异常模式,即使面对未知特征的外挂变种也能进行有效识 阅读详情

相关推荐

一文帮你彻底搞懂ARM Debug Interface之SWD(转)

ARM的文档写的已经很好了,但是关于上电以后的第一时间应该怎么操作,依然写的不够清晰,导致我第一次用的时候还是费了一些周折。今天做一个详细的梳理,希望能够帮助到更多的朋友。BTW, ARM_Cortex-M0/3 DesignStart系列会持续更新,只是中间可能会穿插其他知识点。SWD是Serial Wire Debug的简称,翻译成中文是”串行线调试”。

2302_79847220的博客 6861

静态方法类方法的区别

Python 的类方法和静态方法很相似,它们都推荐使用类来调用(其实也可使用对象来调用)。 类方法和静态方法的区别在于,Python会自动绑定类方法的第一个参数,类方法的第一个参数(通常建议参数名为 cls)会自动绑定到类本身;但对于静态方法则不会自动绑定。 类方法 是类对象所拥有的方法,需要用修饰器@classmethod来标识其为类方法,对于类方法,第一个参数必须是类对象,一般以cls作为第一个参数(当然可以用其他名称的变量作为其第一个参数,但是大部分人都习惯以'cls'作为第一个参数的名字,就最好

m0_64651429的博客 8240

STM32驱动HC-SR04超声波模块:两种精准测距方案详解

本文详解STM32驱动HC-SR04超声波模块的两种精准测距方案:定时器中断计数法和外部中断边沿检测法。涵盖硬件连接、代码实现与优化技巧,帮助开发者根据精度和复杂度需求选择合适方案,提升超声波测距在嵌入式项目中的稳定性和准确性。

g5h6i的博客 683

python:静态方法

python:静态方法 1、介绍 ​ 所谓静态方法,就是:定义在类中,并且使用 @staticmethod 修饰器修饰,没有 cls 和 self 参数限制的方法我们称之为静态方法。 2、作用 ​ 静态方法主要是用来存放逻辑性的代码,主要是一些逻辑属于类,但是和类本身没有实际性的交互,但是需要让这个功能成为这个类的成员,那么就可以采用静态方法。在静态方法中,不会涉及到类中的方法和属性的操作,可以理解为将静态方法寄存在该类的命名空间中。 3、定义格式 # 定义的一个类 class Person(objec

abraham_ly的博客 9254

ThinkPHP 8.1 + think-swoole 4.1 实战:5分钟搞定WebSocket聊天室(附完整代码)

本文详细介绍了如何使用ThinkPHP 8.1和think-swoole 4.1快速构建高并发WebSocket聊天室。通过5分钟实战教程,开发者可以轻松实现用户列表、消息广播等核心功能,支持2000+并发连接,适用于客服系统、在线协作等实时通信场景。

ol789012345的博客 126

AutoDock Vina实战:从零开始完成分子对接(附7VU6案例详解)

本文提供了一份详细的AutoDock Vina分子对接实战指南,以SARS-CoV-2 3CL蛋白酶(PDB ID: 7VU6)为例,从零开始手把手教学。内容涵盖软件安装、环境配置、受体与配体文件准备、对接参数设置,以及结果分析与可视化解读,旨在帮助计算生物学与药物发现领域的新手快速掌握这一核心技能。

ooo22的博客 535

Python_静态方法

1.应用场景和定义方式 一种方法类型叫做静态方法,在开发的时候, 可以使用类对方法进行封装,如果某一个方法需要访问到对象的实例属性,可以把这个方法封装成一个实例方法. 那如果某一个方法不需要访问对象的实例属性,但是需要访问到类的类属性,这个时候就可以考虑把这个方法封装成一个类方法. 一个实例方法, 一个类方法,这是两种方法类型,但是在开发中还有一种情况,如果要封装的某一个方法,既不需要访问到对象的实例属性,也不需要访问类的类属性,这个时候就可以考虑把这个方法封装成一个静态方法. 不访问实例属性.

weixin_52073430的博客 5266

保姆级教程:用AI辅助反编译Python3.9+的EXE文件(兼容新版pycdc工具)

本文详细介绍了如何利用AI技术辅助反编译Python 3.9+的EXE文件,解决传统工具如uncompyle6无法处理新版字节码的问题。通过pycdc工具和AI大模型的结合,开发者可以高效还原代码逻辑,并提供了从EXE解包到字节码解析的完整流程,适用于逆向工程和代码分析场景。

hill8的博客 1223

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

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

tianheihei__的博客 1万+

SKUA-GOCAD入门教程-第八节 线的创建与编辑7和8

本文介绍了曲线编辑操作的主要功能,包括曲线部分和区域的管理操作。在曲线部分操作方面,详细说明了如何合并、删除、移动和过滤曲线部分,支持精确或带公差的合并方式。在曲线区域操作方面,阐述了保留/删除区域点、移动区域点、保留/删除区域线段等操作。此外还介绍了节点连接功能,包括新增/删除连接、端点连接以及为曲线赋予地质特征的方法。

江洋大葱的博客 390

数据库小技能:数据导入脚本

背景:版本大升级,从2.0升级到3.0 ,服务端开发语言从c#换到java语言。数据库类型从microsalft sql server 换到mysql。数据来源于微信,用于查询卡bin。

专注于计算机研发知识和资讯分享 774

python中静态方法staticmethod用法详解

python中静态方法staticmethod用法详解

IT之一小佬的博客 9880

总结目前开源的视频生成/视频编辑大模型

随着Sora的爆火,视频生成和视频编辑受到了越来越多的关注。这篇博客总结一下目前开源的视频生成和视频编辑的大模型,并分析他们各自的优缺点,以及在自己进行科研任务或者工作中应该如何选用对应的开源模型,希望能给从事这一领域研究和使用的小伙伴们帮助。

沉迷单车的追风少年 3542

python类方法和静态方法的区别_Python实例方法、类方法、静态方法区别详解

1、关于参数的区别实例方法:定义实例方法是最少有一个形参 ---> 实例对象,通常用 self类方法:定义类方法的时候最少有一个形参 ---> 类对象,通常用 cls静态方法:定义静态方法的时候可以不定义形参2、关于方法定义时候添加装饰器的区别实例方法:不需要添加装饰器类方法:需要添加装饰器 ----> @classmethod静态方法:需要添加装饰器 ---> @stat...

weixin_39834780的博客 271

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

python中类方法和静态方法的区别_python类方法和静态方法的区别

Python完全支持定义类方法,甚至支持定义静态方法。Python的类方法和静态方法很相似,它们都推荐使用类来调用(其实也可使用对象来调用)。类方法和静态方法的区别Python会自动绑定类方法的第一个参数,类方法的第一个参数(通常建议参数名为 cls)会自动绑定到类本身;但对于静态方法则不会自动绑定。使用 @classmethod 修饰的方法就是类方法;使用 @staticmethod 修饰的方法...

weixin_42488542的博客 1162

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

python中类方法和静态方法区别

面相对象程序设计中,类方法和静态方法是经常用到的两个术语。 逻辑上讲:类方法是只能由类名调用;静态方法可以由类名或对象名进行调用。 在C++中,静态方法与类方法逻辑上是等价的,只有一个概念,不会混淆。 而在Python中,方法分为三类实例方法、类方法、静态方法。代码如下: class Test(object): def InstanceFun(self): print("Instanc...

u014389734的博客 2991

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

面试|Python|静态方法和类方法的区别

你需要操作“类本身”(如工厂方法、访问类属性)。:你需要一个“属于这个类的工具函数”,且不依赖类或实例。和是Python面向对象编程的利器。正确使用它们,不仅能提升代码的可读性和可维护性,还能体现你对Python设计哲学的深刻理解。用类方法创建灵活的工厂。用静态方法组织相关的工具函数。掌握这两者的区别,你的Python代码将更加专业和优雅。

Aerkui的博客 1330

python静态方法和类方法的区别_Python探索之静态方法和类方法的区别详解

面相对象程序设计中,类方法和静态方法是经常用到的两个术语。逻辑上讲:类方法是只能由类名调用;静态方法可以由类名或对象名进行调用。python staticmethod and classmethodThough classmethod and staticmethod are quite similar, there's a slight difference in usage for both ...

weixin_39687468的博客 135

python静态方法和类方法的区别有哪些

类方法fun3通过class调用或者通过实例化后的对象调用,是没有任何区别的,全部都是指向同一块内存地址。因为实例化对象apple和apple1调用类方法fun3传入的第一个参数是类本身Apple,也就是说apple.fun3 = apple1.fun3 = Apple.fun3。fun1通过class调用时,它是未绑定的方法,而实例化apple和apple1之后,它属于绑定的方法,且实例化后的apple和apple1内存地址不同,因为它们属于不同的实例对象。通过类调用和通过实例化对象调用的结果完全一样。

hakesashou的博客 805

Python 类方法与静态方法的区别

类方法和静态方法各自有不同的用途,类方法适用于操作类级别的数据,静态方法适用于不依赖于类和实例的独立功能。类方法是绑定到类上的方法,而不是绑定到类的实例上。换句话说,类方法的第一个参数是类本身,而不是对象实例。类方法通常用于对类级别的数据进行操作,或者作为工厂方法来创建类的实例。虽然它们和实例方法一样,都属于类的一部分,但它们有着不同的定义和使用场景。类方法的定义和实例方法的定义类似,不同之处在于它的第一个参数是类本身,通常命名为。类方法的一个典型应用场景是操作类属性,或创建类实例。是一个类方法,它通过。

分享人工智能领域原创文章 538

python类方法和静态方法_Python中类方法和静态方法的区别

Python 实例方法、类方法、静态方法的区别与作用Python中至少有三种比较常见的方法类型,即实例方法,类方法、静态方法。它们是如何定义的呢?如何调用的呢?它们又有何区别和作用呢?且看下文。首先,这三种方法都定义在类中。下面我先简单说一下怎么定义和调用的。(PS:实例对象的权限最大。)实例方法定义:第一个参数必须是实例对象,该参数名一般约定为“self”,通过它来传递实例的属性和方法(也可以传...

weixin_39820158的博客 84

python中类方法和静态方法的区别_python中静态方法和类方法的区别

1.静态方法就是一个普通的方法,与类和对象无关2.类方法就是JAVA里面的类方法,属于类,被各个对象共享class OptSample(object):count = 0def __init__(self,origin_data):self.origin_data = origin_data@staticmethoddef add_number(num1,num2):print(num1 + nu...

weixin_35774446的博客 6083

Python静态方法-类方法的区别及作用

Python实例方法-静态方法-类方法的区别及作用 详情点击右边链接查看 https://blog.youkuaiyun.com/kaever/article/details/105808768

syh_c_python的博客 1714

Python 实例方法、类方法、静态方法区别总结

实例方法、类方法、静态方法区别总结一、总结1.1 定义形式上:1.2 调用方式上:1.3 使用最多,可以直接处理实例对象的逻辑;二、示例一个代码定义和执行的过程回顾 一、总结 1.1 定义形式上: 类方法和静态方法都是通过装饰器实现的,实例方法不是; 实例方法需要传入self参数,类方法需要传入cls参数,而静态方法不需要传self或者cls参数。 注意:不管self参数,还是cls参数,都是一种约定俗成的用法,其实是可以使用其他的参数名代替。但是不建议使用其他参数名,毕竟代码不是只是写给自己看的。 1

耕云者~ 2016

python中类方法,实例方法,静态方法的作用和区别

python中类方法,实例方法,静态方法的作用和区别 Python中至少有三种比较常见的方法类型,即实例方法,类方法、静态方法。它们是如何定义的呢?如何调用的呢?它们又有何区别和作用呢?且看下文。 首先,这三种方法都定义在类中。下面我先简单说一下怎么定义和调用的。(PS:实例对象的权限最大。) 实例方法 定义:第一个参数必须是实例对象,该参数名一般约定为“self”,通过它来...

huitest的博客 5941

python 实例方法和类方法的区别,python类的静态方法和类方法区别

python类的静态方法和类方法区别先看语法,python 类语法中有三种方法,实例方法,静态方法,类方法。本文由黄哥python培训黄哥所写。# coding:utf-8class Foo(object):"""类三种方法语法形式"""def instance_method(self):print("是类{}的实例方法,只能被实例对象调用".format(Foo))@staticmethodde...

weixin_33916124的博客 1049
上一篇: 关于树的练习(一):
下一篇: android studio 打jar包
小狐三日
博客等级 码龄11年 2粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值