python中@staticmethod是干嘛的

通俗的讲:

想象一下,一个类就像是一个制造工厂,而这个工厂的静态方法就像是那些不需要工厂生产线就能独立完成任务的机器。

通常,工厂的机器需要接入工厂的电源(类的实例)和控制系统(类本身)来工作。但是,有些机器很特别,它们自带电池和控制面板,不需要接入工厂的系统就能运行。这些就像是静态方法:它们不需要类的实例(工厂的电源)或类本身(控制系统),就能完成它们的任务。

比如,你有一个计算器类,这个类可以做加法、减法等操作。加法操作就像是一个不需要知道这个计算器之前做过什么计算或者将来会做什么计算的独立功能。你只需要告诉它两个数字,它就可以给出结果,完全不需要计算器的其他功能。所以,加法可以作为一个静态方法,你可以直接使用计算器类调用加法,而不需要先创建一个计算器实例。

用简单的话来说,@staticmethod就是告诉Python:这个方法是个独立的功能,它不需要和类的其他部分交互。你可以把它看作类里的一个小工具,不论有没有创建类的对象,这个小工具都可以使用。

比较官方的话术就是:

在Python中,@staticmethod是一个装饰器,用于表示一个方法是静态方法。静态方法不需要一个类实例的引用就可以被调用,也不会自动传递实例(通常命名为self)或类(通常命名为cls)的引用作为第一个参数。这意味着静态方法既不能访问类的属性(类变量),也不能访问实例的属性(实例变量)。

使用@staticmethod的好处是,你可以在不需要类实例的情况下,将某个方法组织在类中,这样做有助于代码的组织和模块化,因为这个方法逻辑上属于这个类,但它又不需要访问类或实例的任何数据。

静态方法经常用于工具函数,它们执行一些独立的任务,不依赖于类的状态,也不修改类的状态。下面是一个使用@staticmethod的简单例子:

class MathUtils:
    @staticmethod
    def add(x, y):
        return x + y

    @staticmethod
    def multiply(x, y):
        return x * y

    def add_2(self, x, y):
        return x + y 

# 使用静态方法
sum_result = MathUtils.add(5, 3)
product_result = MathUtils.multiply(5, 3)

print("Sum:", sum_result)
print("Product:", product_result)

# 否则就是需要先实例化
a = MathUtils()
b = a.add_2(2, 3)
print(b)

结果如下

Sum: 8
Product: 15
5

在这个例子中,addmultiply方法都是静态的,可以直接通过类来调用,而不需要创建一个MathUtils类的实例。这些方法只是简单地执行传递给它们的参数的运算,不需要访问或修改类的状态。

add_2中该方法就不是静态的,你需要先实例化,然后调用该函数。

由上面的代码可以看出,使用静态方法可以简便的编写代码,不需要使用self这些。

以上就是“python中@staticmethod是干嘛的”的全部内容,希望对你有所帮助。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

二、Python必备开发工具

img

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

五、Python练习题

检查学习结果。

img

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

img

最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值