python的方法

静态方法

python中 @staticmethod 是 一个装饰器,用于定义类中的静态方法。

它就像是一个住在类里的普通函数。不需要访问类的实例(self)或者类本身cls

核心特点

  • 不传递隐式参数:普通实例方法自动接收self,类方法会自动接收cls,但静态方法什么都不接,定义了几个参数,它就只接收几个参数。

  • 可以通过类或者实例调用:既可以'ClassName.method()' 调用,也可以用instance.method()调用(前者更规范)

  • 逻辑归属感:虽然不依赖类的数据,但逻辑上属于这个类

为什么要用它,

实例方法 :

  • 无装饰器 第一个隐式参数self,访问权限包括实例属性和类属性 ,使用场景:修改对象状态。
    类方法 :
  • 装饰器@classmethod 第一个隐式参数cls 访问权限包括类属性 使用场景:工厂方法(创建对象)
    静态方法:
    @staticmethod 第一隐式参数 无,访问权限 无 使用场景 :工具函数(与类逻辑相关但独立)

什么时候使用@staticmethod

可以看作命名空间管理工具

如果有一个函数,功能和这个类紧密相连,但是又不需要读取类里的任何变量,把他写成静态方法比全局函数更加整洁。

看到@staticmethod立刻知道,这个方法不会去动类里的状态,增加代码的可读性。

相关推荐
hnxaoli几秒前
win10小程序(二十一)凭证汇总重复值抽取
python
qwert10372 分钟前
深入解析Python标识符:定义、规则、规范与实践指南
开发语言·数据库·python
Jetev2 分钟前
Golang怎么做API网关_Golang API网关教程【总结】
jvm·数据库·python
m0_690825822 分钟前
Go语言如何发GET请求_Go语言HTTP GET请求教程【总结】
jvm·数据库·python
2301_783848654 分钟前
HTML怎么处理右键菜单_HTML contextmenu自定义(已废弃)替代方案【指南】
jvm·数据库·python
iuvtsrt7 分钟前
HTML怎么提升首屏加载_HTML关键资源内联策略【说明】
jvm·数据库·python
iuvtsrt8 分钟前
如何添加超链接_a标签href属性详解【详解】
jvm·数据库·python
2401_867623988 分钟前
CSS如何快速获取网页上的标准色值_借助开发者工具的取色器和色彩格式转换功能
jvm·数据库·python
cqwuliu9 分钟前
Freemarker模板工具
java·开发语言
学习,学习,在学习9 分钟前
Qt多线程的使用与注意事项
开发语言·数据库·qt