填坑(@staticmethod装饰器----静态方法声明)

> 在学习的时候看到很多人都在用@Staticmethod这个装饰器来修饰类方法,这就让我好奇了这个独特的装饰器到底是个啥?咋就受到这么多Ml的大牛的青睐?秉着可以不用但是不能不晓得的原则,咱也来仔细研究一番。

- 正常我们使用类去实例化对象时会先走 init方法给对象进行初始化赋值。

- 但是使用了staticmethod静态方法后可以直接使用 (类.对象或者类的实例.对象) 去调用被静态方法装饰后的函数,这个过程是不会走init这个方法的,简言之就是不会给对象进行赋值初始化

这是静态装饰器在类里面所起到的一个效果,这也就决定了被声明静态方法的类方法是不需要使用到类属性里面的任何资源,这个时候我们也就不需要再去在静态方法里面传入一个self的形参了(这不,搭建神经网络时咱又可以偷懒少打一个self句段了(doge )

说到这儿来了,咋还得弄清楚丢弃的这个self是啥吧。

那么声明成静态方法之后会怎么样呢?(这时不需要self了)

所以当某个方法不需要用到对象中的任何资源,将这个方法改为一个静态方法, 加一个@staticmethod加上之后, 这个方法就和普通的函数没有什么区别了, 只不过写在了一个类中, 可以使用这个类的对象调用,也可以使用类直接调用,总之就是在不实例化类的情况下可以直接访问该方法

什么是静态方法?@staticmethod装饰器怎么用?的更多相关文章

  1. Python @classmethod和@staticmethod装饰器使用介绍

    @classmethod和@staticmethod装饰器使用介绍 by:授客 QQ:1033553122 简介 静态方法:类中用 @staticmethod装饰的不带 self 参数的方法.类的静态 ...

  2. 面向对象(四)——classmethod、staticmethod装饰器(绑定方法与非绑定方法)

    classmethod.staticmethod装饰器 一.绑定方法与非绑定方法 1.绑定方法(绑定给谁,谁来调用就自动将它本身当作第一个参数传入): (1) 绑定到类的方法:用classmethod ...

  3. day28 staticmethod 装饰器

    静态方法装饰器 完全面向对象的程序中,如果存在某个函数既和对象无关也和类无关,就用staticmethod方法, 在调用此方法的时候只需要加上类名即可,说白了就是强行面向对象....把不是对象的方法也 ...

  4. classmethod和staticmethod装饰器

    """ 两个装饰器 @classmethod 把一个对象绑定的方法,修改成为一个类方法 1.在方法中仍然可以引用类中的静态变量 2.可以不用实例化对象,就直接使用类名在外 ...

  5. 面向对象(四)--绑定方法与非绑定方法(classmethod、staticmethod装饰器)

    一.绑定方法与非绑定方法 1.绑定方法(绑定给谁,谁来调用就自动将它本身当作第一个参数传入): (1)绑定给对象的方法:在类内部定义的函数(没有被任何装饰器修饰的)默认就是绑定给对象用的. (2)绑定 ...

  6. python基础-内置装饰器classmethod和staticmethod

    面向对象编程之classmethod和staticmethod classmethod 和 staticmethod都是python内置的装饰器 classmethod 的作用:给在类内部定义的方法装 ...

  7. 11.python描述符---类的装饰器---@property

    描述符1.描述符是什么:描述符本质就是一个新式类,在这个新式类中,至少实现了__get__(),__set__(),__delete__()这三个内置方法中的一个,描述符也被称为描述符协议(1):__ ...

  8. python面对对象编程中会用到的装饰器

    1.property 用途:用来将对像的某个方法伪装成属性来提高代码的统一性. class Goods: #商品类 discount = 0.8 #商品折扣 def __init__(self,nam ...

  9. 类的静态方法@staticmethod

    静态方法 @staticmethod 静态方法是定义在类内部的函数,此函数的作用域是类的内部 说明: 静态方法需要使用 @staticmethod装饰器定义 静态方法与普通函数定义相同,不需要传入se ...

  10. 【python】-- 类的装饰器方法、特殊成员方法

    装饰器方法 类的另外的特性,装饰器方法:静态方法(staticmethod).类方法(classmethod).属性方法(property) 一.静态方法 在方法名前加上@staticmethod装饰 ...

随机推荐

  1. 【Burp Suite】Mac之破解明文密码

    一.安装CA证书 安装证书是为了代理的时候可以继续访问地址,否则的话会提示网络异常 参考文章:<Mac系统Burp Suite的安装>,文章中是火狐浏览器的操作 1.谷歌浏览器 选择导出的 ...

  2. (Ljava/lang/String;)Ljava/util/List;

    背景:原正常代码,更改类名后,重新运行 报错:(Ljava/lang/String;)Ljava/util/List; 解决:mvn clean 后 compile,再运行,正常

  3. 【YashanDB知识库】YMP元数据阶段二报错YAS-04204

    [问题分类]YMP迁移 [关键字]YMP迁移,YAS-04204 [问题描述]数据库采用最小规格部署,机器配置2C8G,使用YMP进行数据和对象迁移,在元数据阶段二创建索引时报错:YAS-04204 ...

  4. SpringMVC —— 响应

    响应页面    响应文本数据    响应json数据    响应json集合数据    注解      转换json时使用了类型转换器     

  5. 进程D 状态的产生及原因解释

    在 Linux 系统中,进程的 D 状态表示进程处于不可中断的睡眠状态 (Uninterruptible Sleep).这种状态通常由进程等待某些资源或事件引起,这些资源或事件无法立即可用.以下是一些 ...

  6. linux内核 快速分片,技术|Linux slabtop命令——显示内核片缓存信息

    Linux内核需要为临时对象如任务或者设备结构和节点分配内存,缓存分配器管理着这些类型对象的缓存.现代Linux内核部署了该缓存分配器以持有缓存,称之为片.不同类型的片缓存由片分配器维护.本文集中讨论 ...

  7. iOS中使用UITextView设置不同文本部分点击事件小结

    最近在项目开发中遇到了设置多行文本,点击蓝色邮箱部分跳转到发邮件页面功能.当然比较简单的方式是多标签单独设置,那样稍显麻烦.我们能不能用一个控件,给某一部分添加点击事件,结果是可以的,UITextVi ...

  8. iOS 14 UIDatePicker适配问题,使用老的选择器样式

    iOS 14 UIDatePicker 在 13.4 新增了2个属性如下 @property (nonatomic, readwrite, assign) UIDatePickerStyle pref ...

  9. nodejs 和 npm 版本对应关系

    一.nodejs 和 npm 的版本是有适配的 首先看下官网列明的大概匹配关系: 官网链接地址:https://nodejs.org/zh-cn/about/previous-releases 可以查 ...

  10. spring boot 官网提供所有组件

    所有资源来自于官网:https://start.spring.io/,在此整理只是为了方便查看 Developer Tools Spring Boot DevToolsProvides fast ap ...