位置: 编程技术 - 正文

python中类变量与成员变量的使用注意点总结(python的类变量和成员变量)

编辑:rootadmin

推荐整理分享python中类变量与成员变量的使用注意点总结(python的类变量和成员变量),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python中的类变量,python的类变量和成员变量,python中的类变量,python类变量与字典,python中的类变量,python类变量与字典,python类变量与字典,python 类变量和类方法,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

最近在用python写一个项目,发现一个很恶心的bug,就是同由一个类生成的两个实例之间的数据竟然会相互影响,这让我非常不解。后来联想到java的类有类变量也有实例变量,因此翻阅了相关资料,发现python也有类似的类变量和实例变量,下面来看看详细的介绍。

看下面的示例代码:

x就是类变量,y就是实例变量。

python中类变量与成员变量的使用注意点总结(python的类变量和成员变量)

原则上是没有错的,但是实际用的时候就发现一些恶心的问题(也就是我找了三天的bug)。。。比如下面的代码:

这里很明显x和y都是类变量,add的作用是分别对x和y做出修改。然后构造一个实例a,对实例a的值进行修改,最后构造实例b。

本以为这个结果是显而易见的,然而他输出的结果却是:

问题在哪?明明x和y都是类变量,在第二组print中为什么a.x和b.x一样,但是a.y和b.y就是不一样呢?

想了半天悟了一个道理。。。就是对于python来说,类变量的确是所有类共有的东西。但是那是在我们用的同一个引用的情况下,比如对于[]对象的append方法就是公用一个类变量了;但是对于赋值语句来说,如果在类中对类变量使用了赋值语句,那么python就会生成一个该对象的副本,以后的操作都是基于这个副本而不会对原来的类对象造成影响。这样就解释的通上面的现象了。

那么为了杜绝自己忘记类变量和实例变量的区别导致本不想公用变量的时候公用了变量,最好的办法就是在每个类中使用变量的时候重新初始化一下,这样就不会导致意外了。

总结

标签: python的类变量和成员变量

本文链接地址:https://www.jiuchutong.com/biancheng/375579.html 转载请保留说明!

上一篇:Python urls.py的三种配置写法实例详解(python urljoin)

下一篇:Python 正则表达式实现计算器功能

  • 服务类一般纳税人无进项
  • 金融企业往来支出属于什么科目
  • 所得税预缴怎么做分录
  • 发票作废后对方不退回抵扣联怎么办
  • 财务费用属于什么科目借贷方向
  • 营业外收入在所得税表中填入哪个科目
  • 企业不开票的收入会怎么样处理
  • 房租收到专票账务处理
  • 个体户开运输发票怎么开
  • 控股股权转让
  • 个人应纳税所得额怎么算
  • 行政单位暂付款怎么记账
  • 企业未开票收入怎么发现
  • 利润总额递延所得税
  • 促销赠品的会计处理
  • 印花税按次申报和按期申报区别
  • 房地产公司要做数据分析吗
  • 物业公司收取公摊水电费合理吗
  • 增值税专用发票的税率是多少啊
  • 一般纳税人哪些项目可以简易征收
  • 限制性股票股利会计处理
  • 无法取得发票的预付账款如何处理
  • 企业购入交易性金融资产支付的交易费用
  • 会计事务所成本核算方法
  • 购进商品没收到货怎么办
  • 计算工业总产值指数
  • 公司决议效力确认纠纷
  • win11任务管理器在哪里打开
  • 一次性补偿金在取得后间隔一个月申报可以吗
  • bios相关概念
  • PHP:apache_request_headers()的用法_Apache函数
  • 笔记本通用音频驱动程序怎么修复
  • 苹果a1530是什么
  • memory tester
  • 新空调的安装费是多少
  • 现金折扣的账务处理最新规定
  • php时间戳相减
  • 商品销售成本怎样计算
  • php连接mysql数据库四步
  • gridview datakeynames
  • javaweb实验一
  • 进口货物财务处理
  • 什么是会计确认的基础
  • 如何开发客户群体
  • 以前年度应交税费调账
  • python如何在一个文件中运行另一个文件
  • 经营性收入包括成本吗
  • 个人股东和法人股东分红纳税
  • 收到企业所得税汇算清缴退税账务处理
  • 增值税防伪税控系统
  • 运费发票没到可以先计提吗
  • 水电发票如何开
  • 应交税费未交增值税借方表示什么
  • 建筑安装合同印花税率怎么算
  • 以前年度损益调整属于哪类科目
  • 小规模收的专票以后能抵扣吗
  • 企业弥补亏损的顺序
  • windows7的插孔设置在哪
  • centos svn服务器搭建web
  • windows xp/2000/2003系统自动登陆设置方法无需输入密码
  • 桌面上的软件是什么
  • 用U盘安装苹果系统
  • win10装360安全卫士
  • imjpmig是什么进程
  • linux php 开发教程
  • android.system.suspend@1.0-service耗电
  • awk实例
  • 实用的批处理
  • jquery easyui validatebox remote的使用详解
  • python中sort()的用法
  • jquery的实现原理
  • javascript中window对象的子对象不包含
  • jquery给下拉框添加选项
  • Python 常用代码库
  • python 包 __init__
  • 异地社保如何在本地使用医保
  • 新收入准则租赁业务
  • 丹麦个人所得税税率表
  • 税控发票开票软件金税盘版口令怎么解锁?
  • 车辆缴纳购置税多少钱
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设