位置: 编程技术 - 正文

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

  • 含税金额与不含税金额的换算
  • 流动资产周转天数下降说明什么
  • 公司每月支出
  • 工资中代扣款是什么
  • 向个体工商户付款可以现金支付吗
  • 企业不开票的收入会怎么样处理
  • 房产税从价计征扣除比例
  • 结转损益管理费用在借方
  • 增值税转型前后对比
  • 营改增后商场进场费如何缴税?
  • 电商返佣平台有风险吗
  • 税款多交一分钱怎么做分录
  • 招标代理专家费由谁支付
  • 无形资产增值税计入入账价值吗
  • 代扣代缴个人所得税税率表
  • 纳税人为ETC卡充值取得财政票据进项税额抵扣问题
  • 营业用房标准
  • 汇票贴息会计分录
  • 公司注销报表怎么调
  • 航空公司票价怎么定的
  • 应交增值税出口退税年末如何结转?
  • 补交以前年度个税怎么做账
  • 其他应付款下的固定资产怎么报废
  • 宝塔linux面板怎么安装
  • 内存坏了电脑会黑屏吗
  • 王者荣耀中吕布的克星
  • php 文件操作
  • qqexternal.exe是什么进程如何删除(CPU的使用率在90%)
  • 企业开发产品转为自用的,不得在税前扣除折旧费用
  • 员工工伤一次性赔偿会计分录
  • 实收资本一定要打进公司对公户吗
  • 小规模纳税人销售使用过的固定资产
  • 育空怀特霍斯附近的北极光,加拿大 (© Design Pics/Danita Delimont)
  • 装饰工程施工包括什么
  • idea添加web项目
  • ts中如何定义一个数组
  • 商品仓储费用会增加吗
  • novelai本地部署电脑要求
  • YOLOv5 + StrongSORT with OSNet
  • 瑞吉接送
  • vue.mixin是什么
  • 购买电子承兑差额是多少
  • 预收款预缴增值税如何核算的
  • 企业发生的咨询费应计入哪个科目
  • 减免税在借方如何结转
  • 非金融企业之间借款利息可以抵扣吗
  • 专家咨询费比例不能超过多少
  • mongo --eval
  • 为什么盈余公积减少,未分配利润增加
  • 定额发票验旧日期怎么算
  • 资产负债表中没有专项储备怎么填写
  • 非财政补助结余在资产负债表中怎么填
  • sql server如何查看本地的登录名和密码
  • 销售边角料的增值税率
  • 个人代人开普票个税怎么算
  • 主播工资不发应该到哪里投诉
  • 税前扣除怎么理解
  • 企业享受所得税免税政策
  • 用户画像
  • xp系统直接开机
  • centos直接安装
  • ubuntu15.04安装教程
  • win8系统如何关闭杀毒系统
  • win7系统的文件夹怎么挪位置
  • linux 内存文件夹
  • win7提示内部版本7601副本不是正版
  • win8怎么开机不用密码
  • 对象转化为字符串的几种方式
  • [置顶]游戏名:chivalry2
  • macos如何使用
  • socketio视频教程
  • js右键菜单
  • 一些常用的网络命令
  • python:\n
  • jquery设置div的宽度和高度
  • 拆迁户契税减免政策去哪里办理
  • 临沂市国家税务局人员名单
  • 税务局发票邮寄需要多久
  • 广东省地税电子税务局
  • 小企业会计准则会计科目表
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设