在Python中,cls 是一个用于指代类本身的约定性名称,通常用作类方法(class method)中的第一个参数。cls 类似于 self,它是对类的引用,而不是对实例的引用。cls 通常在类方法中用于访问类级别的属性和方法。举个例子如下所示:

class MyClass:
    class_variable = "I am a class variable"

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

    def instance_method(self):
        print("Instance method called")

    @classmethod
    def class_method(cls):
        print(f"Class method called. Class variable: {cls.class_variable}")

# 创建类的实例
obj = MyClass("I am an instance variable")

# 调用实例方法
obj.instance_method()

# 调用类方法
MyClass.class_method()

  输出结果,如下所示:

Instance method called
Class method called. Class variable: I am a class variable

  在这个例子中:

  • class_method 是一个类方法,它使用 cls 作为第一个参数。这使得在方法中可以访问类的属性,如 cls.class_variable
  • class_variable 是一个类变量,它属于类而不是实例。这意味着无论创建了多少个类的实例,它们都共享相同的 class_variable
  • class_method 中,cls.class_variable 表示访问类方法所属的类的 class_variable。这个类方法可以在不创建类实例的情况下调用,并且能够访问和操作类级别的属性。

  所以,cls.class_variable 指的是通过类方法访问的类变量 class_variable。在这个例子中,当你调用 MyClass.class_method() 时,它会打印出 "Class method called. Class variable: I am a class variable",显示了通过 cls.class_variable 获取的类变量的值。

  需要注意的是,类方法可以通过类本身调用,也可以通过类的实例调用。在这两种情况下,cls 都将引用到相应的类。


NLP工程化

1.本公众号以对话系统为中心,专注于Python/C++/CUDA、ML/DL/RL和NLP/KG/DS/LLM领域的技术分享。

2.本公众号Roadmap可查看飞书文档:https://z0yrmerhgi8.feishu.cn/wiki/Zpewwe2T2iCQfwkSyMOcgwdInhf

NLP工程化

飞书文档

Python中的cls语法的更多相关文章

  1. python中self cls init的理解

    原创文章,未经允许禁止转载! python中self cls init的理解 python中self cls init的理解

  2. python中的cls到底指的是什么

    python中的cls到底指的是什么,与self有什么区别? 2018年07月31日 11:13:09 rs勿忘初心 阅读数:7769   作者:秦风链接:https://www.zhihu.com/ ...

  3. 全面了解Python中的特殊语法:filter、map、reduce、lambda。

    这篇文章主要介绍了Python中的特殊语法:filter.map.reduce.lambda介绍,本文分别对这个特殊语法给出了代码实例,需要的朋友可以参考下filter(function, seque ...

  4. Python中的基本语法

    #Python的基本语法: #1.了解缩进 #Python中没有{}来表示一个代码块,但是Python使用缩进来完成区别代码框架 #那么在Python中一个缩进一般等于4个空格,当然你也可以使用TAB ...

  5. Python中的赋值语法

    Python中复制语法有6种 Basic Form >>>spam = 'spam' Tuple assignment >>>spam, ham = 'spam', ...

  6. python中包的语法

    1.什么是包? 包是一种通过".模块名"来组织python模块名称空间的方式.我们穿件的每个文件夹都可以被称为包. 但是要注意, 在python2中规定. 包内必须存在__init ...

  7. Python 中 PyQt5 库语法(一)

    目录 PyQt5库(一) 一. 简介 1. 什么是 Qt 2. 什么是PyQt 3. 环境搭建 二. 基本结构 1. 第一个程序 2. 控件操作 3. 快速生成代码 4. 面向对象 三. 基类控件 1 ...

  8. Python中Swithch Case语法实现

    而python本身没有switch语句,解决方法有以下3种:A.使用dictionaryvalues = { value1: do_some_stuff1, value2: do_some_stuff ...

  9. python中继承的语法及案列

    案例: 1 class Chinese: # 类的创建,类名首字母大写 2 eye = 'black' # 类属性的创建 3 4 def eat(self): # 实例方法创建 5 print('吃饭 ...

  10. python中 "is"和"=="的区别

    python中"is"和"=="区别 在做leetcode的时候,在判断两个数据是否相等时使用了python中的is not,想着入乡随俗,既然入了python ...

随机推荐

  1. 素数是个什么东西 prime number

    /**  * *********************************************************************  * 只有1和它本身两个正因数的自然数,叫质数 ...

  2. 2023_10_10_MYSQL_DAY_02_笔记

    2023_10_10_MYSQL_DAY_02_笔记 #在 FROM 子句中使用子查询 SELECT a.ename, a.sal, a.deptno, b.salavg FROM emp a, (S ...

  3. css 10-13

    1.背影样式 backgroud-color                   背景颜色 backgroud-color :red backgroud-image                 背 ...

  4. 探究——C# .net 代码混淆/加壳

    背景: 保密. 过程: 先查询一下常见的加壳工具: DotFuscator,官方自带,据说免费版混淆程度不高 Virbox Protector,很好很优秀,但是收费 NET Reactor,可能会被识 ...

  5. js排序算法--冒泡排序

    <!DOCTYPE html> <html> <head> <title></title> </head> <body&g ...

  6. VLAN虚拟网络

    VLAN 名称:vlan 虚拟局域网(virtual LAN) 用途 由于交换机所有的端口都在同一广播域,只要发送广播会产生大量的垃圾信息,同时会有病毒的安全隐患(病毒). 为了解决上述问题 1.物理 ...

  7. SpringBoot自动配置原理解析

    1: 什么是SpringBoot自动配置 首先介绍一下什么是SpringBoot,SpringBoost是基于Spring框架开发出来的功能更强大的Java程序开发框架,其最主要的特点是:能使程序开发 ...

  8. mybatis plus很好,但是我被它坑了!

    作者今天在开发一个后台发送消息的功能时,由于需要给多个用户发送消息,于是使用了 mybatis plus 提供的 saveBatch() 方法,在测试环境测试通过上预发布后,测试反应发送消息接口很慢得 ...

  9. 为什么idea建议使用“+”拼接字符串

    前言 各位小伙伴在字符串拼接时应该都见过下面这种提示: 内容翻译:报告StringBuffer.StringBuilder或StringJoiner的任何用法,这些用法可以用单个java.lang.S ...

  10. Python学习 —— 内置数据类型

    写在前面 接上文<Python学习 -- 初步认知>,有需要请自取:Python学习 -- 初步认知 在这篇文章中,我们一起深入了解Python中常用的内置数据类型.Python是一种功能 ...