位置: 编程技术 - 正文

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年
  • 可以从开发成本直接结转至主营业务成本吗
  • 计提 增值税
  • 一般纳税人差额征税申报表怎么填
  • 年前采购
  • 购买基金会计分录怎么填
  • 企业所得税跨期费用的相关规定
  • 关联企业借款利息税前扣除
  • 公司投资股票有风险吗
  • 个体户要交国税和地税吗
  • 增值税普通发票和专用发票有什么区别
  • 劳动争议的解决途径不可以直接选择的是
  • 增值税预征率记忆口诀
  • 增值税专票盖章正确位置
  • 增值税专用发票验票
  • 夫妻双方交契税可以一人到嘛
  • 如何冲销账面上的资金
  • 费用的补提利息怎么计算
  • 涉农和中小企业贷款分类证明没有就不能进行税前扣除么
  • 费用与支出的区别是什么
  • 房地产会计分录大全
  • 1697510302
  • 宿舍开店能开些啥
  • 股东分红的会计科目怎么做
  • 销售人员奖励办法
  • 劳务派遣公司账目如何做
  • 发财树怎么养护与浇水
  • 私营独资企业交个税怎么交
  • laravel获取请求参数
  • 前端静态页面
  • vue中使用nodejs
  • yii框架连接数据库
  • 2021mathorcupc题答案
  • json与对象的区别
  • typescript教程推荐
  • electron引入vue
  • 会展中心高新技术展览
  • 旅游景点的门票能做费用吗
  • 公司食堂吃饭没钱怎么办
  • html导航链接
  • 标签显示内容怎么设置
  • 苹果mac安装
  • rhel6安装教程
  • 使用命令方式安装程序
  • python如何实现事务机制
  • 企业的利润率怎么算
  • 转让土地如何做会计分录
  • 对增值税发票开具方面是有何要求?
  • 差额征税指的是什么税种
  • 企业银行流水可以不给税务吗
  • 限售股算不算账户资产
  • 企业收到的政府部门工作经费
  • 银行贷款信用贷
  • 网店会计做些什么
  • 非流动资产基金和专用基金
  • 非流动资产处置利得计入什么科目
  • 固定资产减值损失怎么算
  • 445端口 关闭
  • 无法进入睡眠状态
  • win8磁盘占用率高怎么处理
  • xp系统设置壁纸
  • Win10 Mobile 10572快速配置更新推送 Win10 Mobile 10572升级体验
  • 手机用xp系统
  • osx 10.9
  • 怎么恢复电脑win7系统
  • javascript抢票
  • c/s模式的例子
  • Unity3D游戏开发培训课程大纲
  • jquery设置title
  • unity linux arm
  • linuxtop命令详解
  • unity火堆
  • 浙江税务客服咨询电话
  • 纳税申报模拟
  • 更改国名
  • 建筑业增值税纳税义务发生时间包括
  • 年度申报个人所得税专项扣除多填了怎么办
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设