Python3类变量

诸神缄默不语-个人CSDN博文目录

在Python中,类变量是定义在类中且在函数体外的变量。类变量可以通过类本身或类的实例来访问。类变量分为三种类型:类属性、实例属性和局部变量。本文将分别介绍这三种类型的类变量,并通过简单易懂的代码示例进行解释。

文章目录

  • 类属性
  • 实例属性
  • 局部变量
  • 本文撰写的过程中参考的其他网络资料

类属性

类属性是属于类的变量,对于类的所有实例来说,它们共享该属性。这意味着如果任何一个对象修改了类属性,这个修改会反映到所有的实例中。

class MyClass:# 类属性class_variable = 0def __init__(self, instance_variable):# 实例属性self.instance_variable = instance_variable# 创建两个实例
obj1 = MyClass(1)
obj2 = MyClass(2)# 访问类属性
print(MyClass.class_variable)  # 输出:0
print(obj1.class_variable)  # 输出:0
print(obj2.class_variable)  # 输出:0# 修改类属性
MyClass.class_variable = 2
print(obj1.class_variable)  # 输出:2
print(obj2.class_variable)  # 输出:2

在这个示例中,class_variable是一个类属性,所有的MyClass实例都共享这个属性。我们通过类名MyClass修改了class_variable的值,可以看到这个修改反映在了所有实例上。

实例属性

实例属性是属于类实例的属性。每个对象都有自己的实例属性副本,修改一个对象的实例属性不会影响到其他实例。

class MyClass:# 类属性class_variable = 0def __init__(self, instance_variable):# 实例属性self.instance_variable = instance_variable# 创建两个实例
obj1 = MyClass(1)
obj2 = MyClass(2)# 访问实例属性
print(obj1.instance_variable)  # 输出:1
print(obj2.instance_variable)  # 输出:2# 修改实例属性
obj1.instance_variable = 3
print(obj1.instance_variable)  # 输出:3
print(obj2.instance_variable)  # 输出:2

这个示例展示了实例属性的工作方式。每个MyClass的实例都有自己的instance_variable副本。修改obj1instance_variable不会影响到obj2

局部变量

局部变量是定义在方法中的变量,只在方法的作用域内可见。它们不能被类的其他方法直接访问。

class MyClass:def my_method(self):# 局部变量local_variable = 5print(local_variable)# 创建实例
obj = MyClass()# 调用方法,可以访问局部变量
obj.my_method()  # 输出:5# 直接访问局部变量会抛出异常
# print(obj.local_variable)  # 报错,因为local_variable不可见

在这个示例中,local_variable是一个局部变量,它只能在my_method方法内部访问。尝试在方法外部访问local_variable会导致错误。

通过以上介绍和示例,我们可以看到Python中类变量的不同类型及其用法。理解这些概念对于编写高效、易于维护的Python代码非常重要。

本文撰写的过程中参考的其他网络资料

  1. python 类变量详解-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/691590.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

打码半年,开源一款自定义大屏设计软件!

hi,大家好,我是Tduck马马。 最近我们开源了一款大屏软件-TReport,与大家分享。 TReport是一款基于Vue3技术栈的数据可视化系统,支持静态、动态api等数据源;可用于数据可视化分析、报表分析、海报设计使用。 提供自定…

leetcode hot100 分割等和子集

在本题中,我们是要把一个数组,分割成两个子集,并且两个子集的元素和相等。那么也就是说,两个子集的和是相等的,并且都是整个数组的一半。那我们考虑这是一个01背包问题,物品的价值和物品的质量一样&#xf…

linux 10 定时任务

作用: 计划任务主要是做一些周期性的任务, 目前最主要的用途是定期备份数据。 at命令的时间格式: 例子: crontab有系统级别的任务,用户的不放在这里 查看用户任务 或者用

VSCODE使用Django

https://code.visualstudio.com/docs/python/tutorial-django#_use-a-template-to-render-a-page 通过模板渲染页面 HTML文件 实现步骤 1, 修改代码,hello的App名字增加到installed_apps表中。 2, hello子目录下,创建 .\templat…

Unity【角色/摄像机移动控制】【3.摄像机跟随角色】

本章代码基于前两章。 1. 我们新建CameraController脚本,将其挂载到Camera上 2. 在角色Player下新建一个空物体,命名为cameraTargetPoint,并将该物体挂载至CameraController脚本中【注意代码中的这行:public Transform cameraTarg…

二分算法02

二分算法02 1. 每个小孩最多能分到多少糖果2. 准时到达的列车最小时速3. 在 D 天内送达包裹的能力 1. 每个小孩最多能分到多少糖果 给你一个 下标从 0 开始 的整数数组 candies 。数组中的每个元素表示大小为 candies[i] 的一堆糖果。你可以将每堆糖果分成任意数量的 子堆 &am…

一文搞懂LDO !

7.LDO 1.原理 通过运放调节P-MOS的输出 低压差: 输出压降比较低,例如输入3.3V,输出可以达到3.2V。 线性: LDO内部的MOS管工作于线性状态。(可变电阻区) 稳压器: 说明了LDO的用途是用来给电…

Panalog大数据日志审计系统libres_syn_delete.php存在命令执行漏洞

文章目录 前言声明一、Panalog大数据日志审计系统简介二、漏洞描述三、影响版本四、漏洞复现五、整改意见 前言 Panalog大数据日志审计系统定位于将大数据产品应用于高校、 公安、 政企、 医疗、 金融、 能源等行业之中,针对网络流量的信息进行日志留存&#xff0c…

Maven(基础)、MyBatis

简介 Apache Maven是一个项目管理和构建工具,它基于项目对象模型 (POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档 官网: http://maven.apache.org/ Maven作用 Maven是专门用于管理和构建Java项目的工具,它的主要功能有&#x…

C语言——从头开始——深入理解指针(1)

一.内存和地址 我们知道计算上CPU(中央处理器)在处理数据的时候,是通过地址总线把需要的数据从内存中读取的,后通过数据总线把处理后的数据放回内存中。如下图所示: 计算机把内存划分为⼀个个的内存单元,每…

php使用get_browser()函数将移动端和pc端分开

首先,确保你的PHP版本支持get_browser函数。get_browser函数是PHP内置的函数,但需要配置php.ini文件中的browscap参数,指定一个浏览器配置文件。 下载浏览器配置文件。你可以从 https://download.csdn.net/download/bigorange1/88850695 下…

vulhub中Apache Log4j Server 反序列化命令执行漏洞复现(CVE-2017-5645)

Apache Log4j是一个用于Java的日志记录库,其支持启动远程日志服务器。Apache Log4j 2.8.2之前的2.x版本中存在安全漏洞。攻击者可利用该漏洞执行任意代码。 1.我们使用ysoserial生成payload,然后直接发送给your-ip:4712端口即可。 java -jar ysoserial-…

Python编程语言学习

1.Python 特点 Python是一种简单、易读、易学和高效的编程语言,具有以下特点: 简单易学:Python采用清晰简洁的语法,注重代码的可读性和可维护性,使得初学者能够快速上手并编写出清晰的代码。 面向对象:Py…

Android EditText关于imeOptions的设置和响应

日常开发中,最绕不开的一个控件就是EditText,随之避免不了的则是对其软键盘事件的监听,随着需求的不同对用户输入的软键盘要求也不同,有的场景需要用户输入完毕后,有一个确认按钮,有的场景需要的是回车&…

GPIO控制和命名规则

Linux提供了GPIO子系统驱动框架,使用该驱动框架即可灵活地控制板子上的GPIO。 GPIO命名 泰山派开发板板载了一个40PIN 2.54间距的贴片排针,排针的引脚定义兼容经典40PIN接口。 在后续对GPIO进行操作前,我们需要先了解k3566的GPIO命名规则&a…

Unity开发过程中背包系统性能优化方案

在游戏开发中,背包系统是非常常见并且重要的一部分。然而,如果不合理地设计与实现,它可能导致游戏运行效率降低,影响玩家的游戏体验。在Unity中,背包系统的优化需要考虑以下几个方面: 1. 使用对象池&#x…

windows10重装系统后, 磁盘目录上出现了一个黄色三角感叹号和一把锁(BitLocker解锁)

BitLocker解锁 通过cmd命令窗口关闭Bitlocker锁 通过cmd命令窗口关闭Bitlocker锁 manage-bde -off D:执行这个命令之后会发现提示【解密正在进行中】,但是一般来说对于这种所谓的进行中都会想要明确的看到进度显示 那么就需要用到下一个命令了 manage-bde -status…

vue transition结合animate.css动画库

transition结合animate.css动画库 安装 npm install animate.css --save 在main.js中引用 import animated from animate.css Vue.use(animated) 在transition标签上使用 <transition enter-active-class"animate__animated animate__fadeInUp" leave-acti…

SQL-2

刷题知识点&#xff1a; null不能用这种判断&#xff0c;要用is null 或者is not null 或者可用 ifnull来判断。 明确&#xff1a;数据库DB是数据存储仓库。 数据库管理系统&#xff08;Database management system&#xff0c;DBMS&#xff09;&#xff0c;是操纵和管理数据库…

《Solidity 简易速速上手小册》第8章:高级 Solidity 概念(2024 最新版)

文章目录 8.1 高级数据类型和结构8.1.1 基础知识解析更深入的理解实际操作技巧 8.1.2 重点案例&#xff1a;构建一个去中心化身份系统案例 Demo&#xff1a;创建去中心化身份系统案例代码DecentralizedIdentityContract.sol 测试和验证拓展案例 8.1.3 拓展案例 1&#xff1a;管…