位置: 编程技术 - 正文

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

  • 如何查询继续教育证书
  • 入资款印花税怎么计算
  • 电汇凭证的日期为什么必须是当天
  • 申报成功忘记清关怎么办
  • 虚开增值税发票的涉税风险如何防范
  • 固定资产的建造成本包括
  • 超市销售购物卡怎么开票
  • 摊销保险费会计分录怎么写
  • 补交以前年度印花税记到哪个会计科目
  • 公司土地和厂房可以按折价卖结股东权益吗
  • 企业所得税弥补亏损怎么算
  • 劳务报酬申报个税后还需要开发票吗
  • 税收成本如何影响税收管理制度
  • 个人独资企业免税销售额
  • 房产税和土地使用税计入什么科目
  • 免税个体户发票税率多少
  • 个人所得税生产经营所得投资者减除费用
  • 销售不动产税务处理
  • 增值税做账做错怎么处理
  • 教育费附加税优惠
  • 给已经注销的公司退款
  • 进料加工分配率是什么意思
  • safedownloader是什么
  • 默认网关为什么有两个
  • php获取多选框的值
  • 外币兑换业务的银行
  • 预算周转金会计怎么做账
  • 优先股转化
  • 应付债券的会计处理
  • 个人信息提供者
  • 视同销售的行为
  • 废钢收购无进项怎么处理
  • 已抵扣认证的发票开红字发票需要将原票退回吗
  • 二挡起步教程
  • php eval绕过
  • 处置车辆收入缴税规定
  • wordpress标签tag文章
  • 借入长期借款的利息
  • php如何判断用户是否在线
  • 未取得合法支付凭据和与本单位无关的收入
  • java队列用法
  • ps中如何使用切片工具
  • python smtpd
  • 用于研发的材料做成产品出售后怎么做账
  • 资产负债表和利润表的认定
  • 小卖部铺货首次送货流程
  • sqlserver2008导出表结构和表数据
  • 财务报表审计的定义
  • 个人独资企业购入设备可以一次性计提吗
  • 增值税普通发票查询
  • 以前年度出口退税未收汇
  • 研发费用 汇算清缴
  • 劳务费用如何做账
  • 销售预付卡的账务处理
  • 报表与账不符情况说明
  • 原材料当废品卖可以吗
  • 破产清算的程序特点
  • 代理返利
  • 年化利率是什么意思
  • mysql5.7主从配置
  • centos如何查询版本号
  • linux命令合集
  • on_wm_lbuttondown
  • windows10玩游戏卡吗
  • 错误日志项数
  • exception继承
  • jquery table加载数据
  • node. js教程
  • nodejs document
  • 枚举的内容怎么输出
  • python复制文件内容
  • Express + Session 实现登录验证功能
  • js根据对象的key来获取对应值
  • 安卓回调接口怎么写
  • 轻轻松松学习JavaScript
  • 怎么将安卓
  • 督查局工作怎么样
  • 立信金融会计学院
  • 宁波个人税务查询网
  • 金税三期个人所得税怎么申报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设