当前位置: 首页 > article >正文

Python : 类变量、静态方法、类方法

文章目录

  • 前言
    • 1 类变量(Java静态变量)
    • 2 Python中的静态方法(使用 @staticmethod 装饰器声明)
    • 3 类方法(使用 @classmethod 装饰器声明)
    • 4 静态方法和类方法的区别


前言

学完Java过后,对python中有了一些疑惑。Java中有static修饰的静态变量和静态方法这两个很用用的知识点,特别是在共享内存的操作上面。

Java静态变量和静态方法
Java多线程:在Java中使用多线程频繁使用静态变量(共享内存)

我就一直疑惑,Python中有没有类似的定义呢?因为真的好用采用Java中的那种风格写多线程。然后我就发现了Python中的这几个冷门知识点:

类变量(Java静态变量)
静态方法(Java静态方法)
类方法:这个是Python提供的更加灵活的方法

1 类变量(Java静态变量)

在 Python 中,类变量类似于 Java 的静态变量,属于类而不是对象。所有类的实例共享同一个类变量。
类变量的特点

  • 共享:类变量是所有实例共享的。如果类变量的值被一个实例修改,所有其他实例看到的将是修改后的值。
  • 定义位置:类变量在类体内定义,通常在方法之外。
  • 访问方式:可以通过类名或实例名访问类变量。
class Student:
    # python中类变量是所有实例共享的,就是java中的静态变量用static修饰的变量
    teacher = "李华"   # 类变量
    
    def __init__(self,name,age,class_name):
        self.name = name   # 实例 成员变量
        self.age = age
        self.class_name = class_name

    def modify_teacher(self,teacher):
        # 修改类变量,需要通过类名.变量名的方式修改
        # 如果直接使用self.teacher = teacher,那么只是修改了实例变量,而不是类变量(我们类变量的目的本来就是为了

http://www.kler.cn/news/334001.html

相关文章:

  • 【Verilog学习日常】—牛客网刷题—Verilog企业真题—VL65
  • android compose ScrollableTabRow indicator 指示器设置宽度
  • 如何突破科技服务领域的客户管理困境?
  • [NeurIPS 2022] STaR: Bootstrapping Reasoning With Reasoning
  • 逻辑回归(下): Sigmoid 函数的发展历史
  • 【C++】多态练习题(面试常考)
  • 网络基础 【HTTPS】
  • 【RocketMQ】从 文件/数据结构 视角理解RocketMQ原理
  • 数据库(MySQL):使用命令从零开始在Navicat创建一个数据库及其数据表(一).创建基础表
  • (14)MATLAB莱斯(Rician)衰落信道仿真4
  • Django上下文处理器
  • vue2接入高德地图实现折线绘制、起始点标记和轨迹打点的完整功能(提供Gitee源码)
  • 华为开源自研AI框架昇思MindSpore应用案例:计算高效的卷积模型ShuffleNet
  • Redis --- 第三讲 --- 通用命令
  • 【Python】Dejavu:Python 音频指纹识别库详解
  • 深度学习:CycleGAN图像风格迁移转换
  • OpenCV背景建模:从基础到实践
  • Android中的Activity与Fragment:深入解析与应用场景
  • Android架构组件MVVM模式的实战应用与数据绑定技巧
  • DatePicker 日期控件