位置: 编程技术 - 正文

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 正则表达式实现计算器功能

  • 个体工商户一直没办税务登记证
  • 企业购进固定资产
  • 一般纳税人附加税优惠政策2023
  • 固定资产报废进项税额怎么处理
  • 什么是税收收入效应
  • 支付的画图费没有发票要如何处理
  • 促销费用计入销售费用哪个科目
  • 个税返还手续费奖励员工账务处理
  • 一张报关单可以分两次退税吗
  • 综合所得申报是报上个月的吗
  • 旅游业差额开票怎么做账
  • 子公司是长期股权投资吗
  • 工会经费如何申报?
  • 实收资本账
  • 个体工商户可以开建筑劳务发票吗?
  • 对方公司开发票我方未付款如何做分录?
  • 成本未取得发票
  • 房产空置怎么判定
  • 外账的作用
  • 三证合一后新老税号不符合
  • 净利润含不含所得税
  • 印花税零申报怎么填样本
  • 公司年终分红如何入账
  • 短期借款有没有上年结转
  • 工信部推出一键解绑怎么用
  • 合同条款签订
  • 其他债权投资有哪些明细科目
  • thinkphp5开发教程
  • php新手入门
  • 固定资产抵债交不交增值税
  • 可转换债券的特点有哪些?
  • 用支票购入厂部办公用品2000元,车间办公用品1000元
  • 云杉树下面长什么蘑菇
  • mysql实现事务
  • 向农户收购农产品怎么打款
  • Vue vue.config.js 的详解与配置
  • 在大运河上举办什么活动
  • 移动加权平均法例题
  • vuex详解和用法
  • vue的mvvm模型
  • xch 未来
  • php支付接口对接教程
  • lpstat命令
  • php消除警告
  • extract php函数
  • 发票申请条件
  • 银行汇票如何背书转让
  • 企业的净资产都有哪些
  • 承兑汇票可以当现金借给别人用吗
  • 增值税出口免税不退税
  • sql join 语句
  • 可供出售金融资产属于什么科目
  • 国库集中支付是什么意思
  • 长期挂账其他应付款处理
  • 商业汇票怎么算到期日
  • 抵扣认证的发票怎么做账
  • 汽车折旧年限及残值率是多少
  • 企业会计准则中职工薪酬
  • 合并注销和注销的区别
  • win8.1应用商店还能用吗
  • 在linux操作系统中
  • 微软正式推送windows11
  • 如何恢复ubuntu
  • web软件安装
  • browsercore.exe是什么
  • SpamSubtract.exe - SpamSubtract是什么进程
  • win10如何禁用windows defender
  • pcalc是什么软件
  • surface使用
  • 常用的批处理文件
  • django中的model
  • jquery左侧导航栏
  • shell入门
  • unity3d导出fbx文件
  • 10个JavaScript中易犯小错误
  • javascript中Date format(js日期格式化)方法小结
  • python数学题
  • 韩国快递关税
  • 株洲购房契税减半流程查询
  • 动态简报和工作总结
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设